Heim >Backend-Entwicklung >Python-Tutorial >Kann die JSON-Ausgabe ein OrderedDict sein?

Kann die JSON-Ausgabe ein OrderedDict sein?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 09:29:12804Durchsuche

Can JSON Output Be an OrderedDict?

OrderedDicts als JSON-Ausgabe verwenden

Kann JSON in ein OrderedDict geladen werden?

In der JSON-Serialisierung können OrderDicts geladen werden als Inputs genutzt. Es stellt sich jedoch eine entscheidende Frage: Können sie auch als Outputs fungieren? Wenn ja, wie läuft der Prozess ab?

JSON als Ausgabe in OrderedDicts

Ja, OrderDicts können tatsächlich als JSON-Ausgaben dienen. Dies wird durch die Angabe des Arguments object_pairs_hook innerhalb von JSONDecoder erreicht. Wie in der Dokumentation erwähnt, wird dieser Ansatz im folgenden Beispiel demonstriert:

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

Alternative JSON-Ausgabeparameter

Der Einfachheit halber können Sie diesen Parameter auch übergeben direkt zu json.loads (ohne die Notwendigkeit einer Decoder-Instanz):

>>> import json
>>> from collections import OrderedDict
>>> data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
>>> print json.dumps(data, indent=4)
{
    "foo": 1,
    "bar": 2
}
>>> 

Laden von JSON-Daten in OrderedDicts

Ähnlich können JSON-Daten mit json.load auf die gleiche Weise in OrderDicts geladen werden:

>>> data = json.load(open('config.json'), object_pairs_hook=OrderedDict)

Das obige ist der detaillierte Inhalt vonKann die JSON-Ausgabe ein OrderedDict sein?. 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