2013-03-19 25 views
5

Jestem nowy, aby scrapy i chciałbym zrozumieć, jak zeskrobać obiekt do wyjścia do zagnieżdżonego JSON. Teraz, mam produkujących JSON, który wygląda jakScrapy z zagnieżdżoną tablicą

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

a ja go lubię więcej tak:

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

--- gdzie umieścić kilka rzeczy w _junk podpól do postprocesowego później.

Obecny kod pod pliku definicji parsera w moim scrapername.py jest ...

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

i wydawało się

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

--- może to naprawić, ale mam coraz błąd o kluczu _junk:

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

Czy to znaczy, muszę zmienić moje items.py jakoś? Obecnie mam:

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

Odpowiedz

7

Musisz utworzyć słownik śmieci przed przechowywaniem w nim przedmiotów.

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

Ughhhhhhhhh, oczywiście, oczywiście. Dziękuję Ci! – Mittenchops