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

Linda Hamilton
Freigeben: 2024-10-27 05:17:03
Original
257 Leute haben es durchsucht

 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!