JSON ist ein beliebtes Format für den Datenaustausch. Python wird mit einem eingebauten JSON Modul zum Analysieren und Arbeiten mit JSON-Daten. Und dieses Tutorial wird Ihnen alles über die Arbeit mit JSON in Python beibringen.
Am Ende dieses Tutorials haben Sie Folgendes gelernt:
- die Grundlagen von JSON,
- wie man JSON-Strings in Python analysiert und erstellt, und
- wie man in Python aus JSON-Dateien liest und in sie schreibt.
Fangen wir an!⏳
What is JSON?
JSON steht für JavaSKript OObjekt Notation, und es ist ein textbasiert Format für den Datenaustausch. Obwohl JSON zunächst inspiriert ist Durch JavaScript-Objekte werden fast alle Programmiersprachen unterstützt Arbeiten 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. Und auch bei der Client-Server-Kommunikation in Softwareanwendungen wird JSON häufig eingesetzt. 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 leistungsstarke integrierte Datenstrukturen in Python, in denen Daten gespeichert werden Schlüssel-Wert-Paare.
Bevor wir weitermachen, hier sind einige Punkte, die es wert sind, beachtet zu werden:
- 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 bezeichnet
true
undfalse
. In Python werden diese in Booleans 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 wie folgt in Ihr aktuelles Verzeichnis importieren:
import json
How to Load a JSON String in Python
Die allgemeine Syntax zum Laden einer JSON-Zeichenfolge 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-Zeichenfolge.
Dies lädt die <json_str>
in das Python-Wörterbuch <dict_obj>
.
Lassen Sie uns ein Beispiel codieren. Hier json_str
ist ein JSON-String.
json_str = '''
{
"books": [
{
"title": "The Wind in the Willows",
"author": "Kenneth Grahame",
"year": "1908"
},
{
"title": "To the Lighthouse",
"author": "Virginia Woolf",
"year": "1927"
}
]
}
'''
Und das folgende Code-Snippet zeigt, wie Sie den JSON-String laden können json_str
in ein Python-Wörterbuch mit der loads()
Methode. Sie können die integrierte verwenden type()
Funktion, um dies zu überprüfen 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-Zeichenfolge Schlüssel-Wert-Paare py_dict
.
How to Create JSON Strings in Python
Nehmen wir an, Sie haben ein Python-Wörterbuch. Wie erstellt man daraus einen JSON-String?
Sie können es tun, indem Sie die 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-Zeichenfolge.
So dumps()
Methode Dumps <dict_obj>
in einen JSON-String <json_str>
.
Zu unserem bestehenden Python-Wörterbuch py_dict
. Lassen Sie uns einen neuen Schlüssel hinzufügen "movies"
. Sie können dies wie im folgenden Code-Snippet 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
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 die richtige Formatierung schwer zu lesen. Du kannst den ... benutzen optional Parameter indent
Einzug hinzuzufügen.
Und Sie können dies durch Einstellung tun indent
zu einer Ganzzahl 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
}
]
}
Beobachten Sie, wie die Ausgabe mit Einrückungen formatiert wurde, und es ist einfach zu befolgen.
Hinweis: 💡 Wenn Sie möchten, dass die Schlüssel in alphabetischer Reihenfolge sortiert werden, können Sie die festlegen
sort_keys
ParameterTrue
.
Wie Sie im Code-Snippet unten sehen können, wurden die Schlüssel jetzt 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 Schlüssel erscheinen jetzt in alphabetischer Reihenfolge: "author"
, "title"
und "year"
.
Bisher haben Sie gelernt, wie Sie mit JSON-Strings in Python arbeiten. Im nächsten Abschnitt erfahren Sie, wie Sie mit JSON-Dateien arbeiten.
How to Read a JSON File in Python
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, wie wir die verwenden
load()
Methode und nicht dieloads()
Methode.loads()
lädt a JSON-String, währendload()
lädt a 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, können möglicherweise Ressourcen verschwendet werden.
Allerdings bei der Arbeit mit Kontextmanager, werden 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'}]}
Geben Sie beim Lesen aus einer Datei den Modus als an lesen-angezeigt durch 'r'
im obigen Code.
Hinweis: Um einfach durch das aktuelle Verzeichnis navigieren zu können, stellen Sie bitte sicher, dass sich die JSON-Datei im selben Ordner befindet wie
main.py
, wie im Bild unten gezeigt. Wenn sich Ihre JSON-Datei in einem anderen Ordner befindet, geben Sie unbedingt den Pfad zu der Datei an.

Im nächsten Abschnitt erfahren Sie, wie Sie in eine JSON-Datei schreiben.✍
How to Write to a JSON File in Python
Um in eine vorhandene 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
. Lassen Sie uns das jetzt in eine neue JSON-Datei kopieren. Und nennen wir es new_file.json
.
Und die folgende Codezelle zeigt, wie Sie die verwenden können dump()
Funktion:
with open('new_file.json','w') as file:
json.dump(py_dict,file)
Hinweis: Öffnen einer Datei im schreiben Modus (
w
) überschreibt den Inhalt, falls die Datei vorhanden ist. Wenn die Datei nicht vorhanden ist, wird die Datei erstellt.
Nachdem Sie die obige Codezelle ausgeführt haben, sehen Sie, dass eine neue JSON-Datei im aktuellen Arbeitsverzeichnis erstellt wurde. Und Sie können fortfahren und den Inhalt der JSON-Datei untersuchen.

Beim Schreiben in Dateien ist das Hauptziel die Datenspeicherung. Und wenn Sie die Formatierung beibehalten möchten, können Sie auch die verwenden indent
und sort_keys
Parameter.
Fazit
⏲ Zeit für eine kurze Zusammenfassung.
In diesem Tutorial haben Sie gelernt:
- die Grundlagen der Verwendung von JSON,
- wie man das nutzen
loads()
undload()
Methoden zum Lesen von JSON-Zeichenfolgen bzw. JSON-Dateien, - wie man das nutzen
dumps()
unddump()
Methoden zum Ausgeben von Python-Wörterbüchern in JSON-Strings bzw. JSON-Dateien.
Ich hoffe, Sie fanden dieses Tutorial hilfreich. Viel Spaß beim Lernen!
Sie können auch anschauen JSON-Tools zum Parsen, Formatieren und Validieren.