JSON in eine Datei schreiben in Python

Vaibhav Vaibhav 22 Juni 2021
JSON in eine Datei schreiben in Python

JSON ist ein leichtes und für Menschen lesbares Dateiformat, das in der Branche häufig verwendet wird. JSON steht für JavaScript Object Notation. Wie der Name schon sagt, ist JSON bei Webentwicklern sehr beliebt und wird häufig in Webanwendungen zum Senden und Abrufen von Daten vom Server oder anderen Anwendungen verwendet.

Python wird mit vielen integrierten Paketen oder Modulen geliefert und verfügt über viele externe Module, die über das Internet zur Verfügung stehen. Interessanterweise verfügt es auch über ein eingebautes Modul, json, um JSON-Daten zu verarbeiten.

In Python kann der JSON auf zwei Arten dargestellt werden. Erstens als Zeichenketten. Eine JSON-Zeichenkette sieht folgendermaßen aus.

jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'

Stellen Sie bei der Darstellung von JSON als Zeichenkette sicher, dass Sie nur doppelte Anführungszeichen ("") verwenden, um Schlüssel und Zeichenkettenwerte zu verpacken. JSON unterstützt das einfache Anführungszeichen nicht und gibt einen Fehler aus, wenn das einfache Anführungszeichen verwendet wird.

Der zweite Weg ist die Verwendung des Python-Objekts oder im Volksmund als Python-Dictionary bekannt. Es hat eine ähnliche Syntax wie ein JSON.

Die Darstellung des JSON in Form eines Python-Dictionaries würde so aussehen.

jsonObject = {
    "name": "DelftStack",
    "email": "DelftStack@domain.com",
    "age": 20,
    "country": "Netherlands",
    "city": "Delft",
}

Stellen Sie erneut sicher, dass Sie nur doppelte Anführungszeichen verwenden.

Schreiben Sie JSON mit dem Modul json in Python in eine Datei

Angenommen, Sie haben eine Variable, die einen JSON in Form einer Zeichenkette speichert. Um es in eine JSON-Datei zu schreiben, können Sie den folgenden Code verwenden.

import json

fileName = "my-data.json"
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
jsonString = json.loads(jsonString)

file = open(fileName, "w")
json.dump(jsonString, file)
file.close()

Zunächst haben wir das Modul json importiert. Dann haben wir den JSON-Dateinamen und die JSON-Zeichenkette selbst in zwei Variablen gespeichert. Dann erstellen und öffnen wir eine neue Datei mit dem Namen, den wir im Schreibmodus gewählt haben.

Anschließend verwenden wir die Funktion loads aus dem Modul json, um die JSON-Zeichenkette in ein Python-Dictionary zu konvertieren und in eine Datei zu schreiben. Die Funktion akzeptiert eine gültige JSON-Zeichenkette und konvertiert sie in ein Python-Dictionary.

Wenn für diese Funktion eine ungültige Zeichenkette angegeben wird, wird der Fehler json.decoder.JSONDecodeError ausgegeben. Stellen Sie also sicher, dass Sie eine korrekte Zeichenkette übergeben, oder verwenden Sie zur Fehlerbehandlung einen Block try-except-finally.

Als nächstes verwenden wir die Methode dump(), die uns das Modul json zur Verfügung stellt. Diese Methode akzeptiert ein Python-Dictionary und einen Dateideskriptor als Parameter und schreibt die Daten des Dictionaries in die Datei.

Die Methode dump() funktioniert genau dann, wenn die Datei nicht in einem Binärformat geöffnet ist, dh "wb" und "rb" funktionieren nicht und führen zu einem TypeError.

Zuletzt schließen wir die Datei und das Programm wird beendet. Eine JSON-Datei mit dem Namen, den Sie im Programm definiert haben, wird im aktuellen Verzeichnis erstellt.

Wenn im Arbeitsverzeichnis eine Datei mit demselben Namen und derselben Erweiterung vorhanden ist, wird der Inhalt dieser Datei überschrieben.

Angenommen, Sie möchten ein Python-Objekt oder ein Python-Dictionary in eine JSON-Datei schreiben. In diesem Fall beziehen Sie sich auf das folgende Code-Snippet.

import json

fileName = "my-data.json"
jsonObject = {
    "name": "DelftStack",
    "email": "DelftStack@domain.com",
    "age": 20,
    "country": "Netherlands",
    "city": "Delft",
}

file = open(fileName, "w")
json.dump(jsonObject, file)
file.close()

In diesem Fall haben wir bereits das Python-Objekt oder Dictionary, und das dump() akzeptiert, wie oben erläutert, ein Dictionary als Parameter und schreibt es in den Dateideskriptor. Also öffnen wir eine Datei im Schreibmodus, schreiben die Daten mit der Methode dump() in die Datei und schließen die Datei.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python JSON