Scrapy - 将嵌套字典生成 JSON 文件 - 不起作用
Scrapy - yield nested dictionary to JSON file - doesn't work
编辑
正如 Georgiy 所建议的,我尝试生成 dict
而不是 Item
,结果是一样的。
编辑结束
正在尝试将 Scrapy 输出导出到 JSON 文件。项目应具有以下格式:
{'name':'Peter', 'attrs':{'attr1':<VAL>, 'attr2':<VAL>}}
问题是 Scrapy 只渲染 name
。原因可能是 attrs
是一个字典。
class CookieBotItem(scrapy.Item):
name = scrapy.Field()
attrs = scrapy.Field()
为简单起见,我return总是这样:
yield CookieBotItem(name='Peter',
attrs={
'attr1': 'val1',
'attr2': 'val2'}
)
输出如下所示:
[
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"}
]
你知道如何让它发挥作用吗?
不确定这里使用 Item classes.. 嵌套项目。
最快的方法是 yield
字典(不是 Item class 个对象):
yield {
'name': 'Peter',
'attrs':{'attr1': 'val1','attr2': 'val2'}
}
编辑
正如 Georgiy 所建议的,我尝试生成 dict
而不是 Item
,结果是一样的。
编辑结束
正在尝试将 Scrapy 输出导出到 JSON 文件。项目应具有以下格式:
{'name':'Peter', 'attrs':{'attr1':<VAL>, 'attr2':<VAL>}}
问题是 Scrapy 只渲染 name
。原因可能是 attrs
是一个字典。
class CookieBotItem(scrapy.Item):
name = scrapy.Field()
attrs = scrapy.Field()
为简单起见,我return总是这样:
yield CookieBotItem(name='Peter',
attrs={
'attr1': 'val1',
'attr2': 'val2'}
)
输出如下所示:
[
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"},
{"name": "Peter"}
]
你知道如何让它发挥作用吗?
不确定这里使用 Item classes.. 嵌套项目。
最快的方法是 yield
字典(不是 Item class 个对象):
yield {
'name': 'Peter',
'attrs':{'attr1': 'val1','attr2': 'val2'}
}