So analysieren Sie JSON in Python
Veröffentlicht: 2022-02-09JSON ist ein beliebtes Format für den Datenaustausch. Python wird mit einem integrierten JSON - Modul geliefert, um JSON-Daten zu analysieren und mit ihnen zu arbeiten. 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.
Lasst uns beginnen!
Was ist JSON?
JSON steht für Java S cript Object Notation und ist ein textbasiertes Format für den Datenaustausch . Obwohl JSON ursprünglich von JavaScript-Objekten inspiriert wurde, unterstützen fast alle Programmiersprachen die Arbeit mit JSON.
Wenn Sie jemals mit APIs gearbeitet oder Konfigurationsdateien durchgelesen haben, sind Sie wahrscheinlich auf JSON gestoßen.
Beim Abfragen von APIs senden und empfangen Sie Daten in JSON. 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, die Daten in Schlüssel-Wert-Paaren speichern.
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 gespeichert.
- In JSON werden die booleschen Werte als
true
undfalse
bezeichnet. In Python werden diese in die booleschen WerteTrue
undFalse
umgewandelt.
Weitere Einzelheiten zu den Datentypen, die von JSON nach Python übersetzt werden, finden Sie hier in der Dokumentation.
Da das json
-Modul Teil der Python-Standardbibliothek ist, müssen Sie es nicht installieren. Sie können wie folgt in Ihr aktuelles Verzeichnis importieren:
import json
So laden Sie einen 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.
Dadurch wird <json_str>
in das Python-Wörterbuch <dict_obj>
.
Lassen Sie uns ein Beispiel codieren. Hier ist json_str
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 json_str
mit der Methode „ loads()
“ in ein Python-Wörterbuch laden können. Sie können die integrierte Funktion type()
verwenden, um zu überprüfen, ob py_dict
ein Python-Wörterbuch ist.
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 in py_dict
.
So erstellen Sie JSON-Strings in Python
Nehmen wir an, Sie haben ein Python-Wörterbuch. Wie erstellt man daraus einen JSON-String?
Sie können dies mit der Methode dumps()
mit dieser Syntax tun:
<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.
Die Methode dumps dumps()
<dict_obj>
in einen JSON-String <json_str>
.
Zu unserem bestehenden Python-Wörterbuch py_dict
. Lassen Sie uns einen neuen Schlüssel "movies"
hinzufügen. 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 mit der Methode dumps dumps()
in einen neuen JSON-String json_str2
.
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. Sie können den optionalen Parameter indent
verwenden, um einen Einzug hinzuzufügen.
Und Sie können dies tun, indem Sie den indent
auf eine Ganzzahl wie 2 setzen, 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 den Parameter
sort_keys
aufTrue
setzen.
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.
So lesen Sie eine JSON-Datei in Python
Um eine JSON-Datei in Python zu lesen, verwenden Sie die folgende Syntax:
json.load(<json-file>) # where <json-file> is any valid JSON file.
Beachten Sie, wie wir die Methode
load()
und nicht die Methode load(loads()
verwenden. load(loads()
lädt einen JSON-String, währendload()
eine JSON-Datei lädt .
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.
Beim Arbeiten mit Kontextmanagern werden die Dateien jedoch 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 gelesen an – im obigen Code durch 'r'
gekennzeichnet.
Hinweis : Um einfach durch das aktuelle Verzeichnis zu navigieren, stellen Sie bitte sicher, dass sich die JSON-Datei im selben Ordner wie
main.py
, wie in der Abbildung 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.
So schreiben Sie in Python in eine JSON-Datei
Um in eine vorhandene JSON-Datei zu schreiben oder eine neue JSON-Datei zu erstellen, verwenden Sie die Methode dump()
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 speichert also das Wörterbuch <dict_obj>
in der 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 Funktion dump()
verwenden können:
with open('new_file.json','w') as file: json.dump(py_dict,file)
Hinweis : Das Öffnen einer Datei im Schreibmodus (
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 Parameter indent
und sort_keys
.
Fazit
Es ist Zeit für eine kurze Zusammenfassung.
In diesem Tutorial haben Sie gelernt:
- die Grundlagen der Verwendung von JSON,
- wie man die Methoden
loads()
undload()
verwendet, um JSON-String- bzw. JSON-Dateien zu lesen, - wie man die Methoden
dumps()
unddump()
verwendet, um Python-Wörterbücher in JSON-Strings bzw. JSON-Dateien auszugeben.
Ich hoffe, Sie fanden dieses Tutorial hilfreich. Viel Spaß beim Lernen!
Sie können sich auch JSON-Tools ansehen, um sie zu analysieren, zu formatieren und zu validieren.