Scrapyd:如何将数据写入json文件?

问题描述 投票:0回答:1

我有一个工作中的scrapy 2.1.0项目,在这个项目中,我把数据写到一个json文件中。

def open_spider(self, spider):
    self.file = open('data/'+  datetime.datetime.now().strftime ("%Y%m%d") + '_' + spider.name + '.json', 'wb')
    self.exporter = JsonItemExporter(self.file)

现在我想把它部署到scrapyd,但是由于data文件夹在tmp下不存在,所以会导致以下错误。

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scrapy/crawler.py", line 91, in crawl
    yield self.engine.open_spider(self.spider, start_requests)
FileNotFoundError: [Errno 2] No such file or directory: 'data/20200518_rieger.json'

如何重写上面的代码才能在scrapyd上运行?

python scrapy scrapyd
1个回答
0
投票

要创建一个文件夹,我们可以使用 mkdir 功能从操作系统模块

def make_folder(name):
    try:
        mkdir(name)
    except FileExistsError:
        pass

或者如果你不想使用 试试,您可以使用 listdir 以检查该文件夹是否存在

def make_folder(name):
    if name not in listdir(path):
        mkdir(name)

这对于每个需要文件夹存在的程序都是很好的。

© www.soinside.com 2019 - 2024. All rights reserved.