Ich habe eine Datei, die ein JSON-Objekt enthält. Es wurde die folgende Art und Weise geladen:Python json.loads ändert die Reihenfolge des Objekts
with open('data.json', 'r') as input_file:
input_data = input_file.read()
An diesem Punkt INPUT_DATA enthält nur einen String, und jetzt gehe ich es in JSON zu analysieren:
data_content = json.loads(input_data.decode('utf-8'))
data_content hat die JSON Darstellung der Zeichenfolge, die ist was ich brauche, aber aus irgendeinem Grunde nicht klar für mich nach json.loads es der Auftrag ursprüngliche Reihenfolge der Tasten zu verändern, so zum Beispiel, wenn meine Datei so etwas wie enthalten:
{ "z_id": 312312,
"fname": "test",
"program": "none",
"org": null
}
Nach json.loads der Bestellung des verändert wird, lassen etwas sagen wie:
{ "fname": "test",
"program": None,
"z_id": 312312,
"org": "none"
}
Warum ist das passiert? Gibt es eine Möglichkeit, die Ordnung zu erhalten? Ich benutze Python 2.7.
Warum benötigen Sie Wörterbuch bestellen? –
Wenn Sie wirklich bestellen wollen, dann http://stackoverflow.com/questions/6921699/can-i-get-json-to-load-into-an-orderdeddict-in-python – tdelaney
Ich glaube, das war ein schlechtes Beispiel, weil Die Schlüssel sind alphabetisch geordnet. Ich werde das Beispiel bearbeiten. Mein Punkt ist, dass ich möchte, dass das Objekt nicht verändert wird, sondern in der Reihenfolge, in der es ursprünglich hatte – Sebastian