Wie kontrolliere ich die Reihenfolge der Schlüssel, wenn ich ein Python-Wörterbuch mit „json.dumps' in JSON konvertiere?

Barbara Streisand
Freigeben: 2024-10-26 07:45:30
Original
648 Leute haben es durchsucht

How do I control the order of keys when converting a Python dictionary to JSON using

JSON-Objektschlüsselreihenfolge mit „json.dumps“

Problem:

Beim Konvertieren Wenn Sie ein Python-Wörterbuch mithilfe von „json.dumps“ in ein JSON-Objekt umwandeln, ist die Reihenfolge der Schlüssel möglicherweise nicht wie erwartet. Die gewünschte Reihenfolge (z. B. „ID“, „Name“, „Zeitzone“) wird nicht beibehalten.

Lösung:

1. Sortierschlüssel:

Um die gewünschte Schlüsselreihenfolge anzugeben, übergeben Sie den Parameter „sort_keys“ an „json.dumps“. Dieser Parameter sortiert die Schlüssel in aufsteigender Reihenfolge.

json.dumps(countries, sort_keys=True)
Nach dem Login kopieren

2. Verwenden Sie „OrderedDict“:

Um die Tastenreihenfolge genau zu steuern, verwenden Sie „OrderedDict“ aus dem Modul „collections“ anstelle eines regulären Wörterbuchs. Die Reihenfolge der Schlüssel in „OrderedDict“ bleibt bei der Konvertierung in JSON erhalten.

Python 3.7 und niedriger:

import json
from collections import OrderedDict

ordered_countries = OrderedDict([("id", row.id), ("name", row.name), ("timezone", row.timezone)])
print(json.dumps(ordered_countries))
Nach dem Login kopieren

Python 3.8 und höher:

import json
from collections import OrderedDict

ordered_countries = OrderedDict()
ordered_countries["id"] = row.id
ordered_countries["name"] = row.name
ordered_countries["timezone"] = row.timezone
print(json.dumps(ordered_countries))
Nach dem Login kopieren

3. Beibehalten der Eingabereihenfolge (JSON):

Wenn die Eingabe bereits ein JSON-Objekt ist und Sie die Schlüsselreihenfolge in der Ausgabe beibehalten möchten, übergeben Sie den Parameter „object_pairs_hook“ an „json.loads“. Dieser Parameter akzeptiert einen Callable, der ein „OrderedDict“ basierend auf den Schlüssel-Wert-Paaren des JSON-Objekts zurückgibt.

import json
from collections import OrderedDict

input_json = '{"a": 1, "b": 2}'
ordered_json = json.loads(input_json, object_pairs_hook=OrderedDict)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kontrolliere ich die Reihenfolge der Schlüssel, wenn ich ein Python-Wörterbuch mit „json.dumps' in JSON konvertiere?. 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