Heim >Backend-Entwicklung >Python-Tutorial >Kann JSON in ein Python OrderedDict geladen werden, um die Schlüsselreihenfolge beizubehalten?

Kann JSON in ein Python OrderedDict geladen werden, um die Schlüsselreihenfolge beizubehalten?

Linda Hamilton
Linda HamiltonOriginal
2024-12-02 13:45:12659Durchsuche

Can JSON be Loaded into a Python OrderedDict to Preserve Key Order?

JSON in ein OrderedDict laden

In Python behält ein OrderedDict im Gegensatz zu einem regulären Wörterbuch die Reihenfolge seiner Schlüssel bei. Während es möglich ist, ein OrderedDict mithilfe von json.dump in JSON zu speichern, können wir JSON auch wieder in ein OrderedDict laden, um die ursprüngliche Schlüsselreihenfolge beizubehalten?

JSON in ein OrderedDict laden

Um JSON in ein OrderedDict zu laden, verwenden Sie das Argument object_pairs_hook in der JSONDecoder-Klasse oder in json.loads und json.load. Dieses Argument gibt eine Funktion an, die für jedes Paar von Schlüsseln und Werten im JSON-Objekt aufgerufen wird, während diese geladen werden.

Zum Beispiel, um JSON mit der JSONDecoder-Klasse in ein OrderedDict zu laden:

import json
from collections import OrderedDict

decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict)
data = decoder.decode('{"foo": 1, "bar": 2}')

Sie können das Argument object_pairs_hook auch direkt an json.loads übergeben:

import json
from collections import OrderedDict

data = json.loads('{"foo": 1, "bar": 2}', object_pairs_hook=Collections.OrderedDict)

Oder beim Öffnen eines JSON-Datei:

import json
from collections import OrderedDict

with open('config.json') as f:
    data = json.load(f, object_pairs_hook=OrderedDict)

Dadurch werden die JSON-Daten in ein OrderedDict geladen, während die ursprüngliche Reihenfolge der Schlüssel beibehalten wird.

Das obige ist der detaillierte Inhalt vonKann JSON in ein Python OrderedDict geladen werden, um die Schlüsselreihenfolge beizubehalten?. 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