„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum unterscheidet sich die Reihenfolge der Schlüssel in meinem JSON -Ausgang von der Reihenfolge in meinem Python -Wörterbuch unter Verwendung von `json.dumps`?

Warum unterscheidet sich die Reihenfolge der Schlüssel in meinem JSON -Ausgang von der Reihenfolge in meinem Python -Wörterbuch unter Verwendung von `json.dumps`?

Gepostet am 2025-02-06
Durchsuche:684

Why is the order of keys in my JSON output different from the order in my Python dictionary using `json.dumps`?

außerordnete Elemente in JSON-Objekten mit "json.dumps"?

In Ihrem Code verwenden Sie "JSON" .dumps "um eine Liste von Wörterbüchern in JSON umzuwandeln. Sie haben jedoch festgestellt, dass die Reihenfolge der Schlüssel innerhalb jedes Wörterbuchs nicht wie erwartet ist. Insbesondere brauchen Sie die Schlüssel, um in der Reihenfolge von "ID", "Name" und "TimeZone" zu erscheinen. 3.7) und JSON -Objekte sind ungeordnete Sammlungen. Dies bedeutet, dass die Reihenfolge der Schlüssel in einem Wörterbuch- oder JSON -Objekt nicht garantiert ist.

Lösung 1: Sortieren von Schlüssel

Sie können den Parameter "sort_keys" verwenden "json.dumps", um die Schlüssel im Ausgang JSON zu sortieren. Zum Beispiel:

import JSON Länder.Append ({"id": row.id, "name": row.name, "timezone": row.timezone}) print (json.dumps (Länder, sort_keys = true))

Dies wird JSON in der folgenden Reihenfolge mit den Schlüssel ausgeben:

[ {"ID": 1, "Name": "Mauritius", "Timezone": 4}, {"ID": 2, "Name": "Frankreich", "Timezone": 2}, {"ID": 3, "Name": "England", "Timezone": 1}, {"ID": 4, "Name": "USA", "TimeZone": -4} ]
import json

countries.append({"id":row.id,"name":row.name,"timezone":row.timezone})
print(json.dumps(countries, sort_keys=True))
Lösung 2: Verwenden ordnungsgemäß

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

aus Kollektionen importieren ordnungsgemäß LAWS_BY_ID = OrderedDict () LAWS_BY_ID ["ID"] = row.id LAWS_BY_ID ["Name"] = row.name LAWS_BY_ID ["TIMEZONE"] = row.timeZone print (json.dumps (LAWS_BY_ID))

Dies gibt JSON in der Reihenfolge von "id", "name" und "timezone" aus.

from collections import OrderedDict

countries_by_id = OrderedDict()
countries_by_id["id"] = row.id
countries_by_id["name"] = row.name
countries_by_id["timezone"] = row.timezone

print(json.dumps(countries_by_id))

Länder = {"id": row.id, "Name": row.name, "timezone": row.timezone}

Dies erhalten automatisch die Reihenfolge der Schlüssel in der Ausgabe JSON.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3