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)
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))
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))
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)
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!