別の名前でシリアル化するための方法フィールドはありますか?たとえば、 'product_name'フィールドは 'product name'になります。アイテムのフィールドを別の名前でシリアル化
おかげ
"何らかの値":私はそれはいくつかの他の名前 "になりたい一方で、 "何らかの値":その後、l.add_xpath('product_name','//[@id="some_id"]/text()')
は 'PRODUCT_NAME' としてシリアライズされます
class PropertyItem(Item):
product_name = Field()
2016年11月14日午前21時30分14秒[scrapy] ERROR:エラー処理{ 'URL': 'http://www.example.com/kit400.html'、 'product_name': 'aa 400'、 ...} Tra: ファイル "/Library/Python/2.7/site-packages/twisted/current.result = callback(current.result、* args、** kw) ファイル "/pipelines.py"、行30、process_item内 アイテム[new_key] = [インターネット/ defer.py]、行588、_runCallbacks値 ファイル "/Library/Python/2.7/site-packages/scrapy/item.py"、63行目、__setitem__ (self .__クラス__.__ name__、key)) KeyError: 'CatalogsItemはフィールドをサポートしていません:製品名' – AlonS
@ AlonSあなたの商品は仕様にそのフィールドを持っていないとだけ言います。任意のフィールドと同様に、 'new_key = scrapy.Field()'のように 'CatalogsItem'に' new_key'を追加するだけです。 – Granitosaurus
それは正しいですが、私は名前にスペースを含むフィールドに名前を変更したいと考えています。それを行う方法はありません。 'new key = Field()'は行かないでしょう – AlonS