2013-03-19 47 views
5

Tôi mới là người có nhiều bụi và muốn hiểu làm thế nào để cạo trên đối tượng cho đầu ra vào JSON lồng nhau. Ngay bây giờ, tôi đang sản xuất JSON trông giống nhưPhế liệu với một mảng lồng nhau

[ 
{'a' : 1, 
'b' : '2', 
'c' : 3}, 
] 

Và tôi muốn nó nhiều hơn như thế này:

[ 
{ 'a' : '1', 
'_junk' : [ 
    'b' : 2, 
    'c' : 3]}, 
] 

--- nơi tôi đặt một số nội dung trong _junk trường con để gửi quá trình một lát sau.

Mã hiện dưới các file định nghĩa phân tích cú pháp trong tôi scrapername.py là ...

item['a'] = x 
item['b'] = y 
item['c'] = z 

Và nó dường như

item['a'] = x 
item['_junk']['b'] = y 
item['_junk']['c'] = z 

--- có thể khắc phục điều đó, nhưng tôi nhận được một lỗi về khóa _junk:

File "/usr/local/lib/python2.7/dist-packages/scrapy/item.py", line 49, in __getitem__ 
    return self._values[key] 
exceptions.KeyError: '_junk' 

Điều này có nghĩa là tôi cần thay đổi items.py bằng cách nào đó? Hiện tại tôi có:

class Website(Item): 
    a = Field() 
    _junk = Field() 
    b = Field() 
    c = Field() 

Trả lời

7

Bạn cần tạo từ điển rác trước khi lưu trữ các mục trong đó.

item['a'] = x 
item['_junk'] = {} 
item['_junk']['b'] = y 
item['_junk']['c'] = z 
+0

Ughhhhhhhhhh, đúng, rõ ràng. Cảm ơn bạn! – Mittenchops

Các vấn đề liên quan