JSON in ein OrderedDict laden
In JSON werden Daten in Schlüssel-Wert-Paaren gespeichert. Die Reihenfolge dieser Paare ist nicht garantiert. In bestimmten Szenarien ist es jedoch entscheidend, die Reihenfolge der Schlüssel beizubehalten. Es stellt sich die Frage: Kann JSON in ein geordnetes Wörterbuch (OrderedDict) geladen werden?
Lösung mit object_pairs_hook
Ja, JSON kann in ein OrderedDict geladen werden. Dies wird durch die Angabe des Arguments object_pairs_hook für den JSONDecoder-Konstruktor erreicht. Das Argument object_pairs_hook übernimmt eine Funktion, die für jedes Paar von Schlüsseln und Werten im JSON-Objekt aufgerufen wird. Diese Funktion kann ein geordnetes Wörterbuch zurückgeben und dabei sicherstellen, dass die Reihenfolge der Schlüssel erhalten bleibt. Unten ist ein Beispiel:
import json from collections import OrderedDict data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict) print(json.dumps(data, indent=4))
Ausgabe:
{ "foo": 1, "bar": 2 }
Dies funktioniert, weil die Funktion object_pairs_hook ein OrderedDict-Objekt zurückgibt, das die Reihenfolge der Schlüssel beibehält.
Alternative mit json.load
Der gleiche Ansatz kann auf die angewendet werden json.load-Funktion:
data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
Das obige ist der detaillierte Inhalt vonKann JSON in ein OrderedDict geladen werden, um die Schlüsselreihenfolge beizubehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!