Heim  >  Artikel  >  Backend-Entwicklung  >  Wie steuere ich die JSON-Schlüsselreihenfolge mit Pythons „json.dumps“?

Wie steuere ich die JSON-Schlüsselreihenfolge mit Pythons „json.dumps“?

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 05:17:03258Durchsuche

 How to Control JSON Key Order with Python's `json.dumps`?

Inkonsistenzen der JSON-Schlüsselreihenfolge bei der Verwendung von „json.dumps“

In Python erfordert die JSON-Konvertierung häufig die Verwendung von „json.dumps“ zur Transformation Wörterbücher in JSON-Objekte. Benutzer können jedoch auf Inkonsistenzen in der resultierenden JSON-Schlüsselreihenfolge stoßen, da die erwartete Reihenfolge (ID, Name, Zeitzone) von der tatsächlichen Ausgabe (Zeitzone, ID, Name) abweicht.

Um dieses Problem zu beheben und die durchzusetzen Für die gewünschte Schlüsselreihenfolge stehen zwei Vorgehensweisen zur Verfügung:

1. Verwendung des Parameters „sort_keys“:

Wenn der Parameter „sort_keys“ auf „True“ gesetzt ist, werden die JSON-Schlüssel alphabetisch sortiert. Beispielsweise würde der folgende Codeausschnitt die gewünschte Schlüsselreihenfolge ergeben:

<code class="python">import json

countries = []
countries.append({"id": 1, "name": "Mauritius", "timezone": 4})
countries.append({"id": 2, "name": "France", "timezone": 2})
countries.append({"id": 3, "name": "England", "timezone": 1})
countries.append({"id": 4, "name": "USA", "timezone": -4})

json_data = json.dumps(countries, sort_keys=True)
print(json_data)</code>

2. Verwenden von OrderedDict:

Pythons „collections.OrderedDict“ behält die Reihenfolge der Schlüsseleinfügung bei. Durch die Verwendung von OrderedDict kann die erwartete Schlüsselreihenfolge erreicht werden:

<code class="python">from collections import OrderedDict

countries = OrderedDict()
countries["id"] = 1
countries["name"] = "Mauritius"
countries["timezone"] = 4

json_data = json.dumps(countries)
print(json_data)</code>

In Python 3.6 und höher wird die Reihenfolge der Schlüsselwortargumente standardmäßig beibehalten, was eine prägnantere Syntax ermöglicht:

<code class="python">json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)</code>

Zuletzt kann für die JSON-Eingabe der Parameter „object_pair_hook“ verwendet werden, um die Objektreihenfolge beizubehalten und ein OrderedDict zu generieren:

<code class="python">import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)</code>

Das obige ist der detaillierte Inhalt vonWie steuere ich die JSON-Schlüsselreihenfolge mit Pythons „json.dumps“?. 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