编辑
正如Georgy所建议的,我试图产生dict
而不是Item
,结果是相同的。
编辑结束
正在尝试将Scrapy输出导出到JSON文件。项目应具有以下格式:
{'name':'Peter', 'attrs':{'attr1':<VAL>, 'attr2':<VAL>}}
问题是Scrapy只渲染name
。原因可能是attrs
是一本字典。
class CookieBotItem(scrapy.Item):
name = scrapy.Field()
attrs = scrapy.Field()
为了简单起见,我总是这样返回:
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类的用法。。嵌套项
实现这一点的最快方法是使用yield
字典(而不是Item类对象(:
yield {
'name': 'Peter',
'attrs':{'attr1': 'val1','attr2': 'val2'}
}