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?
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>
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>
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>
Dies führt auch zu einer geordneten JSON-Ausgabe:
<code class="json">{"id": 1, "name": "Mauritius", "timezone": 4}</code>
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>
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>
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!