2016-07-22 8 views
1

私はいくつかのデータを削り取り、それをjsonファイルにエクスポートしていますが、アイテムの順序を設定できないようです。いくつかの読書をした後、私はscrapy Itemsがpython dictのラッパーであると判断し、項目フィールドを予期しない順序で返します。Scrapy変更アイテム注文

私が追加しようとしている:

def keys(self): 
    return ['item1', 'item2', 'item3'] 

を今すぐ出力は、これらの3つの項目から成るが、注文はまだ予測できないまま、私はこれらの項目の順序を設定することができとにかくありますか? JSONでは

+1

'collections.OrderedDict'インスタンスを生成したり返したりすることができます。 Scrapyはそれらをアイテムとして理解する必要があります。私は、JSONのエクスポートがキーの順序を尊重するかどうかはわかりませんが、あなたは試してみてください(他の人たちのためにここに報告してください) –

+0

それはそうではないようですが、jsonはまだアイテムの順序を変更します。 – user1443063

答えて

0

、オブジェクトは、このように定義される:

An object is an unordered set of name/value pairs. 

http://json.orgを参照してください。

JSONのほとんどの実装では、オブジェクトの名前/値のペアの順序を保持することはありません。なぜなら、(定義上)重要ではないからです。

私は最終的にデータフォーマットを切り替えました。

関連する問題