Heim >Backend-Entwicklung >Python-Tutorial >Können JSON-Daten in ein OrderedDict geladen werden, wobei die Schlüsselreihenfolge beibehalten wird?

Können JSON-Daten in ein OrderedDict geladen werden, wobei die Schlüsselreihenfolge beibehalten wird?

Barbara Streisand
Barbara StreisandOriginal
2024-12-06 01:48:10162Durchsuche

Can JSON Data Be Loaded into an OrderedDict, Maintaining Key Order?

JSON in ein OrderedDict laden

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn