Frage:
Ist es möglich, JSON-Daten in ein OrderedDict zu laden und dabei die Daten beizubehalten? Originalbestellung von Schlüssel?
Antwort:
Ja, es ist möglich, JSON in ein OrderedDict zu laden, indem das Argument object_pairs_hook der Klasse JSONDecoder verwendet wird. Dieses Argument gibt die Funktion an, die aufgerufen werden soll, um das Objekt aus den dekodierten JSON-Daten zu erstellen.
Durch die Übergabe von „collections.OrderedDict“ als Argument „object_pairs_hook“ können Sie sicherstellen, dass das resultierende Objekt ein „OrderedDict“ ist, wobei die Reihenfolge des Objekts erhalten bleibt Geben Sie die JSON-Daten ein.
So können Sie dieses Argument verwenden json.JSONDecoder:
decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict) data = decoder.decode('{"foo":1, "bar": 2}') print(data)
Dies gibt ein OrderedDict mit den Schlüsseln in derselben Reihenfolge aus, in der sie in den JSON-Daten erschienen sind:
OrderedDict([('foo', 1), ('bar', 2)])
Sie können dieses Argument auch mit JSON verwenden .loads, um das gleiche Ergebnis zu erzielen:
import json from collections import OrderedDict data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict) print(data)
Schließlich können Sie dieses Argument mit json.load verwenden, um Daten aus einer Datei zu laden in ein OrderedDict:
data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
Das obige ist der detaillierte Inhalt vonKönnen JSON-Daten in ein OrderedDict geladen werden, wobei die Schlüsselreihenfolge beibehalten wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!