JsonLinesItemExporter 在每个字段中输出一个数组

JsonLinesItemExporter outputs an array in each field

我正在使用 JsonLinesItemExporter 来导出一些数据,而不是

{"name": "Color TV", "price": "1200"}
{"name": "DVD player", "price": "200"}

scrapy 正在将以下内容写入文件:

{"name": ["Color TV"], "price": ["1200"]}
{"name": ["DVD player"], "price": ["200"]}

(来自调试)我似乎传递了一个正确的值(不是列表)并且 item.add_valueitem.replace_value 都用单个字符串元素列表替换了我的字符串。

这是可配置的吗? 如果没有,如何获得不同的行为?扩展 JsonLinesItemExporter 还是有更好的方法?

您确定您使用的是正确配置的 ItemLoader 吗? 我建议使用 TakeFirst(此处的文档:https://docs.scrapy.org/en/latest/topics/loaders.html

用法示例:

class YourItemLoader(ItemLoader):
    default_output_processor = TakeFirst()