Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kontrolliere ich die Reihenfolge der Schlüssel, wenn ich ein Python-Wörterbuch mit „json.dumps“ in JSON konvertiere?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 07:45:30577Durchsuche

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)

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!

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