Über JSON
JSON (JavaScript Object Notation) ist ein Dateiformat und ein Datenspeicherstandard, der Schlüssel-Wert-Paare zum Speichern und Austauschen von Daten verwendet. Es ist das am weitesten verbreitete Datenaustauschformat, das häufig in RESTful-APIs, schlanken Datenbanken, Konfigurationsdateien und anderer Offline- oder Online-Software verwendet wird, die Daten speichern, abrufen und austauschen muss. Die meisten Programmiersprachen enthalten standardmäßig Bibliotheken zum Parsen und Schreiben von JSON-Daten, und JSON ist ein programmiersprachenunabhängiges Datenformat. In einer JSON-Datei oder Nutzlast gespeicherte Werte enthalten normalerweise Zeichenfolgen, Zahlen und serialisierbare Datentypen wie Listen (Arrays).
JSON- und Python-Wörterbücher
JSON-Daten in Python werden mithilfe der Methode „load“ in ein Wörterbuchobjekt konvertiert. Es wird oft gesehen, dass manche Leute Json-Daten und ein Python-Wörterbuch gleichsetzen, da die Syntax zum Definieren beider fast gleich ist. Json-Daten sind jedoch nichts anderes als eine Textzeichenfolge, die in einer starren Syntax strukturiert ist, während ein Python-Wörterbuch ein im Speicher gespeichertes Datenstrukturobjekt ist. Wenn Sie Wörterbuchdaten in einer Textdatei speichern oder an ein anderes Nicht-Python-Programm senden möchten, müssen Sie sie zuerst in eine Textzeichenfolge (Bytes) konvertieren. Diese ausgegebene / konvertierte Textzeichenfolge ist in der Standardsyntax von JSON definiert und der Prozess der Konvertierung eines Python-Wörterbuchs in eine json-kompatible Zeichenfolge wird als Serialisierung bezeichnet.
Lesen und Dumpen von JSON-Daten in Python
JSON-Daten können als Antwort von einem Server abgerufen, aus einer Datei gelesen, aus URL-Abfrageparametern geschnitten werden und so weiter. Dieser Artikel konzentriert sich hauptsächlich auf das Lesen von Json-Daten aus einer lokal gespeicherten Datei. Nehmen wir an, ein „Test“.json“-Datei enthält folgende Daten:
"Codename": "Eoan Hermelin", "Version": "Ubuntu 19.10"Um den Test zu lesen.json-Datei in Python verwenden, können Sie den folgenden Code verwenden:
json importierenmit offen ("test.json") als f:
data = json.laden (w)
dump = json.Dumps (Daten)
drucken (Daten)
drucken (Typ(Daten))
drucken (dump)
drucken (Typ (Dump))
Die erste Zeile im obigen Code importiert das Json-Modul. In der nächsten Zeile wird „with open“ verwendet, um den Dateiinhalt sicher zu lesen. Innerhalb des Blocks „with open“ wird „json.load“-Methode wird verwendet, um den Dateiinhalt in der Variablen „data“ zu lesen und zu speichern. Die im vorherigen Schritt geladenen Daten werden mit dem „json“ wieder in einen Json-String umgewandelt.Dump“-Methode. Wenn Sie den obigen Code ausführen, wird die folgende Ausgabe angezeigt:
'Codename': 'Eoan Hermeline', 'Version': 'Ubuntu 19.10'"Codename": "Eoan Hermelin", "Version": "Ubuntu 19.10"
Beachten Sie in der Ausgabe oben, dass das „json“.load“-Methode liest Json-Rohdaten in ein Python-Wörterbuch, während „json.dumps“-Methoden konvertiert ein Wörterbuch in eine Zeichenfolge, die mit der JSON-Struktur kompatibel ist. Nachdem ein JSON-Objekt in ein Python-Wörterbuchobjekt konvertiert wurde, können Sie integrierte Python-Wörterbuchmethoden verwenden, um die Daten zu verarbeiten. Das obige Beispiel ist ziemlich einfach und enthält keine Arrays in JSON-Daten oder verschachtelten Werten. In Python können Sie diese Werte jedoch wie alle anderen verschachtelten Wörterbücher und Listen behandeln.
JSON-Daten sortieren und hübsch drucken
Das „json“.dump“-Methode unterstützt einige optionale Parameter zum Sortieren von Schlüsseln und zum hübschen Drucken der Ausgabe für eine bessere Lesbarkeit.
json importierenmit offen ("test.json") als f:
data = json.laden (w)
dump = json.dumps(data, sort_keys=True, indent=4)
drucken (dump)
Der obige Code zeigt die folgende Ausgabe:
"codename": "Eoan Hermelin",
"Version": "Ubuntu 19.10"
Datentypkonvertierungen
Die folgende Liste zeigt, wie JSON-Werte in Python-Objekte umgewandelt werden und umgekehrt.
JSON | Python |
Schnur | str |
Nummer | int oder float |
wahr falsch | Wahr falsch |
Null | Keiner |
Array | aufführen |
Objekt | diktieren |
Json.Werkzeug Befehlszeilenmodul
Python enthält ein nettes Befehlszeilen-Dienstprogramm „json“.Tool“, mit dem JSON-Strings und -Dateien validiert und hübsch gedruckt werden können.
$ echo '"codename": "Eoan Hermelin", "version": "Ubuntu 19.10"' | python3 -m json.WerkzeugWenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe angezeigt:
"codename": "Eoan Hermelin",
"Version": "Ubuntu 19.10"
Sie können auch json verwenden.Tool mit JSON-Dateien. Ersetzen Sie „in_file“ und „out_file“ im folgenden Befehl durch Ihre gewünschten Werte:
$ python3 -m json.Werkzeug in_file out_fileAbgesehen von hübschem Drucken, Sortieren und Validieren von JSON-Daten, json.Werkzeug macht nichts anderes. Wenn Sie also JSON-Daten manipulieren möchten, müssen Sie Ihren eigenen benutzerdefinierten Code mit dem integrierten JSON-Modul schreiben write.