So lesen und analysieren Sie eine JSON-Datei in Python
Erfahren Sie, wie Sie JSON-Dateien in Python mithilfe des integrierten JSON-Moduls lesen, analysieren und laden. Meistern Sie die Konvertierung von JSON-Strings in Wörterbücher und umgekehrt.
Übersicht
JSON (JavaScript Object Notation) ist das beliebteste Datenformat für APIs, Konfigurationsdateien und Datenspeicherung. Python verfügt über ein integriertes „JSON“-Modul, das das Lesen, Parsen und Schreiben von JSON-Daten unglaublich einfach macht. Da sich JSON-Objekte perfekt auf Python-Wörterbücher und JSON-Arrays auf Python-Listen abbilden lassen, fühlt sich die Arbeit mit JSON nativ an.
Um JSON aus einer externen Datei zu lesen, verwenden Sie die Funktion „json.load()“, die einen Dateistream analysiert und die JSON-Strukturen in Python-Datentypen übersetzt. Wenn die JSON-Daten bereits als String in den Speicher geladen sind, verwenden Sie stattdessen die Funktion „json.loads()“ (das „s“ steht für String). Die Auswahl der richtigen Funktion verhindert Parser-Abstürze.
Bei der Arbeit mit JSON empfiehlt es sich, Codierungs- und mögliche Formatierungsfehler zu behandeln. Die Verwendung von `encoding="utf-8"` innerhalb der `open()`-Anweisung schützt Ihr Skript vor Fehlern bei Sonderzeichen. Durch das Einschließen von Dateivorgängen in einen „Try-Exception“-Block, der „json.JSONDecodeError“ abfängt, wird sichergestellt, dass Ihre App ordnungsgemäß beeinträchtigt wird, wenn die JSON-Datei fehlerhaft ist.
Code- und Ausführungsausgabe
Dieser Code veranschaulicht das Schreiben einer JSON-Beispieldatei, das Lesen und erneute Parsen in ein Python-Wörterbuch sowie den Umgang mit einer JSON-Zeichenfolge.
import json
# Let's write a mock JSON file first
sample_data = {
"user": "developer123",
"skills": ["python", "javascript", "sql"],
"active": True
}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(sample_data, f, indent=4)
# 1. Reading from a JSON file (using json.load)
with open("data.json", "r", encoding="utf-8") as file:
data_from_file = json.load(file)
print("File Content type:", type(data_from_file).__name__)
print("User skill list:", data_from_file["skills"])
# 2. Reading from a JSON string (using json.loads)
json_string = '{"host": "localhost", "port": 5432, "ssl": false}'
data_from_str = json.loads(json_string)
print("\nString Content type:", type(data_from_str).__name__)
print("Database host:", data_from_str["host"])File Content type: dict
User skill list: ['python', 'javascript', 'sql']
String Content type: dict
Database host: localhostSchrittweise Umsetzung
- Importieren Sie das integrierte JSON-Modul in Ihr Skript.
- Öffnen Sie die JSON-Datei mit open("filename.json", "r", binding="utf-8") als Datei.
- Übergeben Sie das Dateiobjekt an json.load(file), um den Inhalt in ein Python-Wörterbuch zu analysieren.
- Verwenden Sie json.loads(string_data), wenn Sie eine rohe JSON-Zeichenfolge analysieren müssen, die bereits im Speicher geladen ist.
Häufig gestellte Fragen
Was ist der Unterschied zwischen json.load() und json.loads()?
json.load() akzeptiert ein dateiähnliches Stream-Objekt (Lesen von der Festplatte), während json.loads() ein Standard-String- oder Byte-Objekt akzeptiert, das JSON-Inhalt enthält (Lesen aus dem Speicher).
Wie gehe ich mit JSON-Serialisierungsfehlern für benutzerdefinierte Klassen um?
Das JSON-Modul von Python kann standardmäßig keine benutzerdefinierten Klasseninstanzen serialisieren. Sie müssen eine benutzerdefinierte Encoderklasse bereitstellen, die json.JSONEncoder erweitert, oder die Attribute der Instanz zunächst mithilfe einer Hilfsmethode in ein Wörterbuch extrahieren.
Verwandte Themen
Erfahren Sie, wie Sie Dateien in Python lesen. Beherrschen Sie die Open-Anweisung, Readline, Readlines und den sicheren Umgang mit Dateiausnahmen.
So schreiben Sie in Python in eine DateiErfahren Sie, wie Sie in Python Text in Dateien schreiben. Meistern Sie den Unterschied zwischen den Modi „Schreiben“ („w“) und Anhängen („a“) mit sicheren Kontextmanagern.
So erstellen Sie ein Wörterbuch in PythonErfahren Sie, wie Sie ein Wörterbuch in Python erstellen. Verstehen Sie die Literalsyntax, den Diktkonstruktor, das Diktverständnis und die Schlüssel-Wert-Initialisierer.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Datei-I/O
Erfahren Sie, wie Sie Dateien in Python lesen und schreiben. Beherrschen Sie open(), read(), write() und Kontextmanager, um Dateivorgänge sicher und ohne Ressourcenverluste abzuwickeln.
Spickzettel für Python-Dateioperationen
Kurzreferenz zum Lesen und Schreiben von Dateien in Python. Beherrschen Sie Öffnungsmodi, Kontextmanager und zeilenweises Lesen.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.