Решение состоит в том, чтобы использовать scrapy jsonitemexporter вместо fead exporter, так как экспортер лент будет записывать в файл во время close_spider (), что слишком поздно.
Это делается довольно просто.
загрузите JsonItemExporter внутри файла pipelines.py
from scrapy.exporters import JsonItemExporter
Измените ваш конвейер следующим образом:
class MyPipeline(object):
file = None
def open_spider(self, spider):
self.file = open('data/test.json', 'wb')
self.exporter = JsonItemExporter(self.file)
self.exporter.start_exporting()
def close_spider(self, spider):
self.exporter.finish_exporting()
self.file.close()
cleanup('zip_method')
def process_item(self, item, spider):
self.exporter.export_item(item)
return item
zip_method содержит почтовый индекс, упомянутый в вопросе.