So lesen und schreiben Sie Json-Dateien in Python

How Read Write Json Files Python



In diesem Artikel wird erläutert, wie Sie mit JSON-Dateien und -Daten in der Programmiersprache Python umgehen. Python wird mit einem integrierten JSON-Modul geliefert, das die Handhabung von JSON-Daten einfach und unkompliziert macht.

Ü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 Analysieren 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 Lademethode in ein Wörterbuchobjekt konvertiert. Es wird oft gesehen, dass einige 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. Dieser ausgegebene / konvertierte Textstring ist in der Standardsyntax von JSON definiert und der Prozess der Konvertierung eines Python-Wörterbuchs in einen Json-kompatiblen String 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, eine test.json-Datei enthält folgende Daten:



{'Codename': 'Eoan Hermeline', 'Version': 'Ubuntu 19.10'}

Um die Datei test.json in Python zu lesen, können Sie den folgenden Code verwenden:





importierenjson

mit offen ('test.json') wieF:
Daten=json.Belastung(F)

entsorgen=json.deponiert(Daten)

drucken (Daten)
drucken (Typ(Daten))
drucken (entsorgen)
drucken (Typ(entsorgen))

Die erste Zeile im obigen Code importiert das Json-Modul. In der nächsten Zeile wird mit open verwendet, um den Dateiinhalt sicher zu lesen. Innerhalb des with open-Blocks wird die Methode json.load verwendet, um den Dateiinhalt in der Datenvariablen zu lesen und zu speichern. Die im vorherigen Schritt geladenen Daten werden mit der Methode json.dump zurück in einen json-String konvertiert. Wenn Sie den obigen Code ausführen, wird die folgende Ausgabe angezeigt:

{'Code Name':'Eoan Hermelin', 'Ausführung':'Ubuntu 19.10'}
<Klasse 'dikt'>
{'Code Name':'Eoan Hermelin', 'Ausführung':'Ubuntu 19.10'}
<Klasse 'str'>

Beachten Sie in der obigen Ausgabe, dass die json.load-Methode Json-Rohdaten in ein Python-Wörterbuch liest, während die json.dumps-Methoden ein Wörterbuch in eine Zeichenfolge konvertiert, 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

Die Methode json.dump unterstützt einige optionale Parameter zum Sortieren von Schlüsseln und zum hübschen Drucken der Ausgabe zur besseren Lesbarkeit.

importierenjson

mit offen ('test.json') wieF:
Daten=json.Belastung(F)

entsorgen=json.deponiert(Daten,sort_keys=Wahr,Einzug=4)
drucken (entsorgen)

Der obige Code zeigt die folgende Ausgabe:

{
'Codename': 'Eoan Hermelin',
'Version': 'Ubuntu 19.10'
}

Datentypkonvertierungen

Die folgende Liste veranschaulicht, wie JSON-Werte in Python-Objekte konvertiert werden und umgekehrt.

JSON Python
Schnur P
Nummer int oder float
wahr falsch Wahr falsch
Null Keiner
Array aufführen
Objekt diktieren

Json.tool-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 Hermeline', 'Version': 'Ubuntu 19.10'}'| python3-m json.Werkzeug

Wenn Sie den obigen Befehl ausführen, wird die folgende Ausgabe angezeigt:

{
'Codename': 'Eoan Hermelin',
'Version': 'Ubuntu 19.10'
}

Sie können json.tool auch mit JSON-Dateien verwenden. Ersetzen Sie in_file und out_file im folgenden Befehl durch Ihre gewünschten Werte:

$ python3-m json.Werkzeugin_file out_file

Abgesehen von hübschem Drucken, Sortieren und Validieren von JSON-Daten macht json.tool nichts anderes. Wenn Sie also JSON-Daten manipulieren möchten, müssen Sie Ihren eigenen benutzerdefinierten Code mit dem integrierten JSON-Modul schreiben.