2013-03-19 10 views
5

私はスクレイピーを初めて使い、入れ子になったJSONに出力するためにオブジェクトをスクラップする方法を理解したいと思います。私は、ポストプロセスに_junkサブフィールドでいくつかのものを入れてネストされた配列を使用した治療

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

---:今、私は

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

のように見え、私はもっとこのようにそれをたいJSONを生産しています後で。

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' 

これは、私が0を変更する必要があることを意味しますか?どういうわけか?現在、私は持っています:

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

答えて

7

迷惑辞書は項目を格納する前に作成する必要があります。

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

ええ、明らかに。ありがとうございました! – Mittenchops

関連する問題