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.
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