Python-JSON-Parsing: Serialisierung und Deserialisierung
Erfahren Sie, wie Sie JSON-Daten in Python lesen, schreiben und analysieren. Beherrschen Sie json.loads, json.dumps und passen Sie JSON-Encoder/Decoder an.
Übersicht
JSON (JavaScript Object Notation) ist das leichte Datenaustauschformat, das moderne Web-APIs, Konfigurationen und Datenbanknutzlasten dominiert. Da JSON-Strukturen Python-Wörterbüchern und -Listen ähneln, ist die Übersetzung zwischen ihnen unglaublich nahtlos. Python ist mit einem integrierten „JSON“-Modul ausgestattet, das das Parsen von JSON-Strings in Python-Objekte und die Rückkonvertierung von Python-Objekten in JSON-Strings erleichtert.
Der Prozess der Übersetzung eines Python-Objekts (z. B. eines Wörterbuchs) in einen rohen JSON-String wird Serialisierung oder Codierung genannt. Dies wird von „json.dumps()“ (für Strings) und „json.dump()“ (zum direkten Schreiben in eine Datei) erledigt. Sie können Formatierungsparameter wie „indent“ steuern, um das JSON zu verschönern, oder „sort_keys“, um die alphabetische Reihenfolge der Attribute beizubehalten. Umgekehrt wird das Parsen einer JSON-Zeichenfolge in ein Python-Wörterbuch als Deserialisierung bezeichnet und über „json.loads()“ und „json.load()“ ausgeführt.
Während Standard-Python-Typen wie Zeichenfolgen, Zahlen, Listen und Diktate automatisch in JSON serialisiert werden, ist dies bei benutzerdefinierten Objekten (wie Klassen oder Datetime-Objekten) nicht der Fall. Der Versuch, ein benutzerdefiniertes Objekt direkt zu kodieren, führt zu einem „TypeError“. Um dies zu umgehen, müssen Entwickler eine benutzerdefinierte Encoder-Klasse erstellen, die von „json.JSONEncoder“ erbt, und die Methode „.default()“ überschreiben, um Klassen in lesbare Wörterbücher zu serialisieren. Die Beherrschung der JSON-Manipulation ist der Schlüssel zur Kommunikation mit externen Webdiensten.
Code- und Ausführungsausgabe
Konvertieren eines Wörterbuchs in einen JSON-String und erneutes Parsen mithilfe der integrierten JSON-Bibliothek.
import json
# Python Dictionary representing a user profile
user_profile = {
"name": "Alex",
"is_premium": True,
"skills": ["Python", "Docker"],
"age": 28
}
# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)
# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")--- JSON String ---
{
"name": "Alex",
"is_premium": true,
"skills": [
"Python",
"Docker"
],
"age": 28
}
--- Parsed Python Dictionary ---
Name: Alex
First Skill: PythonSchrittweise Umsetzung
- Senden von Nutzlasten und Lesen von Daten von REST-APIs
- Speichern von Konfigurationseinstellungen in den Settings.json-Dateien
- Weitergabe strukturierter Nutzlasten zwischen Microservices
Häufig gestellte Fragen
Was ist der Unterschied zwischen json.dump und json.dumps?
json.dump (ohne das „s“) schreibt JSON-Daten direkt in einen Dateistream. json.dumps (mit dem „s“) serialisiert Daten in eine Python-String-Variable.
Wie gehen Sie mit JSON-Dekodierungsfehlern um?
Schließen Sie Ihren Parsing-Code in einen Try/Except-Block ein, der „json.JSONDecodeError“ abfängt, um fehlerhafte JSON-Zeichenfolgen ordnungsgemäß zu verarbeiten.
Verwandte Themen
Meister-Python-Wörterbücher. Erfahren Sie, wie Sie Schlüssel-Wert-Paardaten speichern, abrufen und verarbeiten. Verstehen Sie die Leistung und Best Practices für Zuordnungen.
Python-Datei-I/OErfahren Sie, wie Sie Dateien in Python lesen und schreiben. Beherrschen Sie open(), read(), write() und Kontextmanager, um Dateivorgänge sicher und ohne Ressourcenverluste abzuwickeln.
Python CSVErfahren Sie, wie Sie CSV-Daten in Python verarbeiten. Master csv.reader, csv.writer und DictReader/DictWriter für effizientes Tabellenparsen.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
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.
Spickzettel für Python-String-Methoden
Ein vollständiges Referenzhandbuch für die Python-String-Manipulation. Meistern Sie das Formatieren, Suchen, Teilen, Ersetzen und Überprüfen von Zeichenfolgeneigenschaften.
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.