Was ist JSON und warum sollte man es parsen?
JSON (JavaScript Object Notation) ist ein leichtgewichtiges, textbasiertes Datenaustauschformat, das sich als Standard für die Übertragung von Informationen zwischen Anwendungen etabliert hat. Trotz des Namens ist JSON nicht an JavaScript gebunden und wird in allen modernen Programmiersprachen intensiv genutzt.
Die wichtigsten Vorteile von JSON:
- Menschlich lesbares Format
- Einfache Datenstruktur
- Universelle Unterstützung
- Kompakter als XML
Beispiel eines JSON-Objekts:
{
"name": "Alice",
"age": 30,
"is_active": true,
"hobbies": ["reading", "cycling", "traveling"]
}
Das integrierte json-Modul in Python
Python bietet ein leistungsstarkes, integriertes Modul json für die Arbeit mit JSON-Daten. Dieses Modul ermöglicht zwei grundlegende Operationen:
- Deserialisierung — Umwandlung eines JSON-Strings in Python-Objekte
- Serialisierung — Umwandlung von Python-Objekten in einen JSON-String
Um zu beginnen, importieren wir das Modul:
import json
JSON-Strings in Python-Objekte parsen
Verwendung von json.loads()
Die Funktion json.loads() (load string) wandelt einen JSON-String in das entsprechende Python-Objekt um:
import json
json_data = '{"name": "Bob", "age": 25, "is_active": false}'
parsed_data = json.loads(json_data)
print(parsed_data) # {'name': 'Bob', 'age': 25, 'is_active': False}
print(type(parsed_data)) # <class 'dict'>
Nach dem Parsen können Sie mit den Daten wie mit einem normalen Dictionary arbeiten:
print(parsed_data['name']) # Bob
print(parsed_data['age']) # 25
Typzuordnung
JSON-Typen werden automatisch in Python-Typen umgewandelt:
| JSON | Python |
|---|---|
| object | dict |
| array | list |
| string | str |
| number | int/float |
| true/false | True/False |
| null | None |
Python-Objekte in JSON umwandeln
Verwendung von json.dumps()
Die Funktion json.dumps() wandelt Python-Objekte in einen JSON-String um:
data = {'name': 'Alice', 'age': 30, 'is_active': True}
json_string = json.dumps(data)
print(json_string) # {"name": "Alice", "age": 30, "is_active": true}
Formatierungsparameter
Für eine bessere Lesbarkeit verwenden Sie zusätzliche Parameter:
data = {'name': 'Alice', 'age': 30, 'city': 'Berlin'}
json_pretty = json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False)
print(json_pretty)
Wichtige Parameter:
indent— Einrückungen für die Formatierungsort_keys— Sortierung der Schlüsselensure_ascii— Unterstützung von Unicode-Zeichen
Arbeiten mit JSON-Dateien
JSON aus einer Datei lesen
Verwenden Sie json.load(), um JSON-Daten aus einer Datei zu lesen:
with open('data.json', 'r', encoding='utf-8') as file:
content = json.load(file)
print(content)
JSON in eine Datei schreiben
Die Funktion json.dump() schreibt Daten in eine Datei:
data = {'city': 'Berlin', 'temperature': -5, 'weather': 'Schnee'}
with open('weather.json', 'w', encoding='utf-8') as file:
json.dump(data, file, indent=4, ensure_ascii=False)
Empfehlungen für die Dateiarbeit
- Geben Sie immer die Kodierung an