2016-07-22 10 views
1

Ich kratze einige Daten und exportiert es in eine JSON-Datei, aber ich kann nicht scheinen, um die Reihenfolge der Elemente festzulegen. Nachdem ich etwas gelesen habe, fand ich scrapy Items sind Wrapper von python dict und werden die Itemfelder in einer unvorhergesehenen Reihenfolge zurückgeben.Scrapy Change Items Auftrag

i hinzugefügt haben versucht:

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

nun der Ausgang besteht nur aus diesen drei Elemente aber die Reihenfolge bleibt unberechenbar ist es sowieso konnte ich die Reihenfolge dieser Elemente einstellen?

+1

Sie können versuchen, "collections.OrderedDict" -Instanzen zurückzugeben/zurückzugeben. Scrapy sollte sie als Gegenstände verstehen. Ich bin mir nicht sicher, ob der JSON-Export die Schlüsselreihenfolge respektiert, aber Sie können versuchen (und hier für den Rest von uns zu melden) –

+0

Es scheint nicht so, json ändert immer noch die Reihenfolge der Elemente. – user1443063

Antwort

0

In JSON wird ein Objekt so definiert:

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

http://json.org See.

Die meisten Implementierungen von JSON bemühen sich nicht, die Reihenfolge der Name/Wert-Paare eines Objekts beizubehalten, da es (per Definition) nicht signifikant ist.

Also am Ende habe ich das Datenformat umgeschaltet.