2013-03-19 11 views
5

Ich bin neu zu scrapy und würde gerne wissen, wie man auf Objekt für die Ausgabe in verschachtelten JSON kratzen. Gerade jetzt, ich bin Herstellung JSON, die wieScrapy mit einem verschachtelten Array

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

aussieht Und ich würde es gerne mehr wie folgt aus:

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

--- wo ich ein paar Sachen setzen in _junk Subfelder nachbearbeiten später.

Der aktuelle Code unter der Parser-Definitionsdatei in meinem scrapername.py ist ...

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

Und es schien wie

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

--- könnte das in Ordnung bringen, aber ich bin ein immer Fehler über die _junk Schlüssel:

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

Heißt das, ich brauche meine 0 zu ändernirgendwie? Zur Zeit habe ich:

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

Antwort

7

Sie müssen das Junk-Wörterbuch erstellen, bevor Sie Elemente darin speichern.

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

Ughhhhhhhhhh, richtig, offensichtlich. Vielen Dank! – Mittenchops

Verwandte Themen