2013-03-19 21 views
5

Sono nuovo di scrapy e vorrei capire come raschiare l'oggetto per l'output in JSON nidificato. In questo momento, sto producendo JSON che assomigliaScrapy con un array nidificato

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

E mi piacerebbe di più come questo:

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

--- dove ho messo alcune cose in _junk sottocampi di post-processo dopo.

Il codice corrente sotto il file di definizione del parser nel mio scrapername.py è ...

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

E sembrava

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

--- potrebbe rimediare, ma sto diventando un errore circa la chiave _junk:

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

questo vuol dire che devo cambiare il mio items.py in qualche modo? Attualmente ho:

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

risposta

7

È necessario creare il dizionario di posta indesiderata prima di memorizzare elementi in esso.

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

Ughhhhhhhhhh, giusto, ovviamente. Grazie! – Mittenchops

Problemi correlati