JSON ist ein beliebtes Format für den Datenaustausch. Python wird mit einer eingebauten JSON Modul, um JSON-Daten zu analysieren und mit ihnen zu arbeiten. Und in diesem Tutorial lernen Sie alles über die Arbeit mit JSON in Python.
Am Ende dieses Tutorials werden Sie es gelernt haben:
- die Grundlagen von JSON,
- wie man JSON-Strings in Python parst und erstellt und
- wie man in Python aus JSON-Dateien liest und in sie schreibt.
Fangen wir an!⏳
Was ist JSON?
JSON steht für JavaScript Object Ntion, und es ist eine textbasiert Format für den Datenaustausch. Obwohl JSON ursprünglich inspiriert ist von JavaScript-Objekten, fast alle Programmiersprachen unterstützen Arbeit mit JSON.
Wenn Sie jemals mit APIs gearbeitet oder Konfigurationsdateien durchgelesen haben, sind Sie wahrscheinlich auf JSON gestoßen.
📑 Sie senden und empfangen Daten in JSON, wenn Sie APIs abfragen. JSON wird auch häufig für die Client-Server-Kommunikation in Softwareanwendungen verwendet. Darüber hinaus können Sie JSON auch für die allgemeine Datenspeicherung verwenden.
Das Format von JSON ist dem eines Python-Wörterbuchs sehr ähnlich. Wörterbücher sind leistungsfähige eingebaute Datenstrukturen in Python die Daten in Schlüssel-Werte-Paaren speichern.
Bevor wir weitermachen, sollten wir noch ein paar Punkte beachten:
- In Python wird ein JSON-Objekt als Wörterbuch gespeichert.
- Ein Array in JSON wird als Python-Liste.
- In JSON werden die booleschen Werte als
true
undfalse
. In Python werden diese in Boolesche Werte umgewandeltTrue
undFalse
.
Weitere Einzelheiten zu den Datentypen, die von JSON nach Python übersetzt werden, finden Sie in der Dokumentation hier.
Da die json
Modul ist Teil der Python-Standardbibliothek, Sie müssen es nicht installieren. Sie können es in Ihr aktuelles Verzeichnis importieren, etwa so:
import json
Wie man einen JSON-String in Python lädt
Die allgemeine Syntax zum Laden einer JSON-Zeichenkette in Python lautet:
<dict_obj> = json.loads(<json_str>)
Hier,
<dict_obj>
ist das Python-Wörterbuch, in das Sie die JSON-Zeichenfolge laden möchten,<json_str>
ist eine beliebige gültige JSON-Zeichenkette.
Damit wird die <json_str>
in das Python-Wörterbuch <dict_obj>
.
Lassen Sie uns ein Beispiel programmieren. Hier json_str
ist eine JSON-Zeichenkette.
json_str = '''
{
"books": [
{
"title": "The Wind in the Willows",
"author": "Kenneth Grahame",
"year": "1908"
},
{
"title": "To the Lighthouse",
"author": "Virginia Woolf",
"year": "1927"
}
]
}
'''
Der folgende Codeschnipsel zeigt, wie Sie die JSON-Zeichenfolge laden können json_str
in ein Python-Wörterbuch unter Verwendung der loads()
Methode. Sie können die eingebaute type()
Funktion, um zu überprüfen, dass py_dict
ist ein Python-Wörterbuch.
py_dict = json.loads(json_str)
type(py_dict)
# Output: dict
print(py_dict)
# Output
{'books': [{'title': 'The Wind in the Willows',
'author': 'Kenneth Grahame', 'year': '1908'},
{'title': 'To the Lighthouse', 'author': 'Virginia Woolf', 'year': '1927'}]}
Wie im obigen Code gezeigt, sind alle Felder in der JSON-Zeichenkette Schlüssel-Wert-Paare in py_dict
.
Wie man JSON-Strings in Python erstellt
Nehmen wir an, Sie haben ein Python-Wörterbuch. Wie erstellen Sie daraus einen JSON-String?
Sie können dies mit der Option dumps()
Methode mit dieser Syntax:
<json_str> = json.dumps(<dict_obj>)
Hier,
<dict_obj>
ist das Python-Wörterbuch, aus dem Sie die JSON-Zeichenfolge erstellen möchten,<json_str>
ist die resultierende JSON-Zeichenkette.
Also die dumps()
Methodenabfälle <dict_obj>
in eine JSON-Zeichenkette <json_str>
.
Zu unserem bestehenden Python-Wörterbuch py_dict
. Fügen wir einen neuen Schlüssel hinzu "movies"
. Sie können dies wie im folgenden Codeschnipsel dargestellt tun:
py_dict["movies"] = [{"title":"The Imitation Game","year":"2014",
"lang":"en","watched":True}]
Lassen Sie uns nun das geänderte Wörterbuch in eine neue JSON-Zeichenfolge ausgeben json_str2
unter Verwendung der dumps()
Methode.
json_str2 = json.dumps(py_dict)
print(json_str2)
# Output
{"books": [{"title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908"},
{"title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927"}],
"movies": [{"title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true}]}
Wie Sie im obigen Beispiel sehen können, ist die ausgegebene JSON-Zeichenfolge ohne angemessene Formatierung schwer zu lesen. Sie können die optional Parameter indent
um eine Einrückung hinzuzufügen.
Und das können Sie tun, indem Sie indent
zu einer ganzen Zahl wie 2, wie unten gezeigt:
json_str2 = json.dumps(py_dict, indent = 2)
print(json_str2)
# Output
{
"books": [
{
"title": "The Wind in the Willows",
"author": "Kenneth Grahame",
"year": "1908"
},
{
"title": "To the Lighthouse",
"author": "Virginia Woolf",
"year": "1927"
}
],
"movies": [
{
"title": "The Imitation Game",
"year": "2014",
"lang": "en",
"watched": true
}
]
}
Beachten Sie, wie die Ausgabe mit Einrückungen formatiert wurde, und es ist einfach, ihr zu folgen.
Hinweis: 💡 Wenn die Schlüssel in alphabetischer Reihenfolge sortiert werden sollen, können Sie den
sort_keys
Parameter zuTrue
.
Wie Sie im nachstehenden Codeausschnitt sehen können, wurden die Schlüssel nun in alphabetischer Reihenfolge sortiert.
json_str2 = json.dumps(py_dict, indent = 2, sort_keys=True)
print(json_str2)
# Output
{
"books": [
{
"author": "Kenneth Grahame",
"title": "The Wind in the Willows",
"year": "1908"
},
{
"author": "Virginia Woolf",
"title": "To the Lighthouse",
"year": "1927"
}
],
"movies": [
{
"lang": "en",
"title": "The Imitation Game",
"watched": true,
"year": "2014"
}
]
Und die Tasten erscheinen nun in alphabetischer Reihenfolge: "author"
, "title"
und "year"
.
Bisher haben Sie gelernt, wie man mit JSON-Strings in Python arbeitet. Im nächsten Abschnitt lernen Sie, wie Sie mit JSON-Dateien arbeiten können.
Wie man eine JSON-Datei in Python liest
Zum Lesen eine JSON-Datei in Python, verwenden Sie die folgende Syntax:
json.load(<json-file>)
# where <json-file> is any valid JSON file.
Beachten Sie, dass wir die
load()
Methode und nicht dieloads()
Methode.loads()
lädt eine JSON-Zeichenfolge, währendload()
lädt eine JSON-Datei.
Sie sollten die Verwendung von Kontextmanagern in Betracht ziehen, wenn Sie mit Dateien in Python arbeiten. Sie können auch versuchen, Dateien wie folgt zu lesen, ohne den Kontextmanager zu verwenden:
my_file = open('students.json','r')
contents = my_file.read()
print(contents)
file.close()
Wenn Sie die Datei nicht schließen, kann es zu einer Verschwendung von Ressourcen kommen.
Bei der Arbeit mit Kontextmanagerwerden die Dateien automatisch geschlossen, sobald die Dateioperationen abgeschlossen sind.
Und Sie können den Kontextmanager verwenden, um Dateien zu lesen, wie unten gezeigt:
with open('students.json','r') as file:
data = json.load(file)
print(data)
# Output
{'students': [{'roll_num': 'cs27', 'name': 'Anna', 'course': 'CS'},
{'roll_num': 'ep30', 'name': 'Kate', 'course': 'PHY'}]}
Wenn Sie aus einer Datei lesen, geben Sie den Modus als lesen-angezeigt durch 'r'
im obigen Code.
Hinweis: Um einfach durch das aktuelle Verzeichnis zu navigieren, vergewissern Sie sich bitte, dass sich die JSON-Datei in demselben Ordner befindet wie
main.py
wie in der folgenden Abbildung gezeigt. Wenn sich Ihre JSON-Datei in einem anderen Ordner befindet, geben Sie unbedingt den Pfad zu dieser Datei an.

Im nächsten Abschnitt erfahren Sie, wie Sie in eine JSON-Datei schreiben können.✍
Wie man in Python in eine JSON-Datei schreibt
Um in eine bestehende JSON-Datei zu schreiben oder eine neue JSON-Datei zu erstellen, verwenden Sie die dump()
Methode wie gezeigt:
json.dump(<dict_obj>,<json_file>)
# where <dict_obj> is a Python dictionary
# and <json_file> is the JSON file
Die obige Syntax gibt also das Wörterbuch aus <dict_obj>
in die JSON-Datei <json_file>
.
Im vorherigen Abschnitt hatten wir das Wörterbuch py_dict
. Diese Daten werden nun in eine neue JSON-Datei übertragen. Und nennen wir sie new_file.json
.
Und die folgende Codezelle zeigt, wie Sie die dump()
Funktion:
with open('new_file.json','w') as file:
json.dump(py_dict,file)
Hinweis: Öffnen einer Datei in der schreiben. Modus (
w
) überschreibt den Inhalt, wenn die Datei existiert. Existiert die Datei nicht, wird die Datei erstellt.
Nach der Ausführung der obigen Codezelle werden Sie sehen, dass eine neue JSON-Datei im aktuellen Arbeitsverzeichnis erstellt wurde. Sie können nun den Inhalt der JSON-Datei untersuchen.

Beim Schreiben in Dateien geht es in erster Linie um die Speicherung von Daten. Und wenn Sie die Formatierung beibehalten möchten, können Sie auch die indent
und sort_keys
Parameter.
Schlussfolgerung
⏲ Es ist Zeit für eine kurze Zusammenfassung.
In diesem Lernprogramm haben Sie gelernt:
- die Grundlagen der Verwendung von JSON,
- wie man den
loads()
undload()
Methoden, um JSON-Strings bzw. JSON-Dateien zu lesen, - wie man den
dumps()
unddump()
Methoden, um Python-Wörterbücher in JSON-Strings bzw. JSON-Dateien zu dumpen.
Ich hoffe, dieses Tutorial war hilfreich für Sie. Viel Spaß beim Lernen!
Sie können auch nachsehen JSON-Tools zum Parsen, Formatieren und Validieren.