Heim > Backend-Entwicklung > Python-Tutorial > Wie können Sie die Reihenfolge der Schlüssel in JSON-Objekten steuern, wenn Sie Python-Wörterbücher mit „json.dumps' konvertieren?

Wie können Sie die Reihenfolge der Schlüssel in JSON-Objekten steuern, wenn Sie Python-Wörterbücher mit „json.dumps' konvertieren?

Barbara Streisand
Freigeben: 2024-10-29 21:17:30
Original
967 Leute haben es durchsucht

How can you control the order of keys in JSON objects when converting Python dictionaries using `json.dumps`?

Elemente in JSON-Objekten mit „json.dumps“ neu anordnen

Das Problem ungeordneter Schlüssel in JSON-Objekten tritt auf, wenn die Funktion „json.dumps“ zum Konvertieren von Python verwendet wird Wörterbücher in das JSON-Format umwandeln, was zu unerwarteten Reihenfolgen führt. Dies liegt daran, dass sowohl Python-Wörterbücher als auch JSON-Objekte keine inhärente Reihenfolge haben.

Um dieses Problem zu beheben, kann der Parameter „sort_keys“ in „json.dumps“ verwendet werden, um die Schlüssel in aufsteigender alphabetischer Reihenfolge zu sortieren. Hier ist ein Beispiel:

<code class="python">import json

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

print(json.dumps(countries, sort_keys=True))</code>
Nach dem Login kopieren

Dies erzeugt die gewünschte Ausgabe mit sortierten Schlüsseln:

<code class="json">[
  {"id": 1, "name": "Mauritius", "timezone": 4},
  {"id": 2, "name": "France", "timezone": 2},
  {"id": 3, "name": "England", "timezone": 1},
  {"id": 4, "name": "USA", "timezone": -4}
]</code>
Nach dem Login kopieren

Eine weitere Option besteht darin, die Klasse „collections.OrderedDict“ zu verwenden, die die Reihenfolge der Schlüssel beibehält. Wertepaare. Hier ist ein Beispiel:

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

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

print(json.dumps(countries))</code>
Nach dem Login kopieren

Dies führt auch zu einer geordneten JSON-Ausgabe:

<code class="json">{"id": 1, "name": "Mauritius", "timezone": 4}</code>
Nach dem Login kopieren

Seit Python 3.6 wird die Reihenfolge der Schlüsselwortargumente standardmäßig beibehalten, was eine effizientere Möglichkeit bietet Erzielen Sie die gewünschte Reihenfolge:

<code class="python">countries = {
    "id": 1,
    "name": "Mauritius",
    "timezone": 4
}

print(json.dumps(countries))</code>
Nach dem Login kopieren

Wenn Ihre Eingabe schließlich als JSON bereitgestellt wird, kann das Argument „object_pairs_hook“ in „json.loads“ verwendet werden, um die Reihenfolge als „OrderedDict“ beizubehalten:

<code class="python">json_input = '{"a": 1, "b": 2}'

ordered_dict = json.loads(json_input, object_pairs_hook=OrderedDict)
print(ordered_dict)</code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Schlüssel-Wert-Paare in der ursprünglichen Reihenfolge bleiben, in der sie in der JSON-Eingabe bereitgestellt wurden.

Das obige ist der detaillierte Inhalt vonWie können Sie die Reihenfolge der Schlüssel in JSON-Objekten steuern, wenn Sie Python-Wörterbücher mit „json.dumps' konvertieren?. 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