Scrapy与嵌套数组
我刚开始接触scrapy,想了解如何抓取一个对象并输出成嵌套的JSON格式。目前,我生成的JSON看起来像这样:
[
{'a' : 1,
'b' : '2',
'c' : 3},
]
我希望它能更像这样:
[
{ 'a' : '1',
'_junk' : [
'b' : 2,
'c' : 3]},
]
---我在_junk
子字段里放了一些东西,以便后续处理。
在我的scrapername.py
文件中的解析器定义代码是...
item['a'] = x
item['b'] = y
item['c'] = z
我觉得
item['a'] = x
item['_junk']['b'] = y
item['_junk']['c'] = z
---可能能解决这个问题,但我遇到了一个关于_junk
键的错误:
File "/usr/local/lib/python2.7/dist-packages/scrapy/item.py", line 49, in __getitem__
return self._values[key]
exceptions.KeyError: '_junk'
这是不是意味着我需要以某种方式修改我的items.py
文件?目前我有:
class Website(Item):
a = Field()
_junk = Field()
b = Field()
c = Field()
1 个回答
9
在把东西放进垃圾字典之前,你需要先创建这个字典。
item['a'] = x
item['_junk'] = {}
item['_junk']['b'] = y
item['_junk']['c'] = z