Arbeiten mit JSON-Daten in Python
JSON (JavaScript Object Notation) ist ein einfaches Datenformat für den Datenaustausch zwischen einem Server und einem Client. Es wird häufig in Webanwendungen zum Senden und Empfangen von Daten verwendet. Python bietet ein integriertes Modul namens json
, das die Arbeit mit JSON-Daten erleichtert. Dieser Artikel führt Sie durch die Grundlagen der Arbeit mit JSON-Daten in Python, einschließlich Lesen, Schreiben und Bearbeiten von JSON-Objekten.
Was ist JSON?
JSON ist ein textbasiertes Format, das sowohl für Menschen als auch für Maschinen leicht zu lesen und zu schreiben ist. Es besteht aus Schlüssel-Wert-Paaren, ähnlich wie Python-Wörterbücher. Ein typisches JSON-Objekt sieht folgendermaßen aus:
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
Importieren des JSON-Moduls
Das Modul json
ist in der Standardbibliothek von Python enthalten, Sie müssen also nichts installieren. Importieren Sie es einfach am Anfang Ihres Skripts:
import json
Lesen von JSON-Daten
Sie können JSON-Daten aus einem String oder einer Datei lesen. Die Methode json.loads()
wird verwendet, um JSON-Daten aus einem String zu analysieren, während json.load()
verwendet wird, um JSON-Daten aus einer Datei zu lesen.
JSON aus einem String lesen
Um JSON aus einer Zeichenfolge zu lesen, verwenden Sie die Methode json.loads()
, die die JSON-Zeichenfolge in ein Python-Wörterbuch konvertiert.
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
JSON aus einer Datei lesen
Um JSON-Daten aus einer Datei zu lesen, verwenden Sie die Methode json.load()
. Diese Methode liest den Inhalt einer Datei und konvertiert ihn in ein Python-Wörterbuch.
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Schreiben von JSON-Daten
Sie können JSON-Daten in einen String oder eine Datei schreiben. Die Methode json.dumps()
wird verwendet, um ein Python-Objekt in einen JSON-String zu konvertieren, während json.dump()
verwendet wird, um JSON-Daten in eine Datei zu schreiben.
Schreiben von JSON in einen String
Um JSON in eine Zeichenfolge zu schreiben, verwenden Sie die Methode json.dumps()
, die ein Python-Wörterbuch in eine JSON-Zeichenfolge konvertiert.
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
Schreiben von JSON in eine Datei
Um JSON-Daten in eine Datei zu schreiben, verwenden Sie die Methode json.dump()
. Diese Methode nimmt ein Python-Objekt und schreibt es in eine Datei im JSON-Format.
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
Hübsches Drucken von JSON-Daten
Die Methode json.dumps()
verfügt über mehrere Parameter, mit denen Sie JSON-Daten für eine bessere Lesbarkeit formatieren können. Der Parameter indent
gibt die Anzahl der für die Einrückung zu verwendenden Leerzeichen an, während der Parameter sort_keys
die Schlüssel in der Ausgabe sortiert.
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
Konvertieren zwischen JSON- und Python-Datentypen
Das json
-Modul von Python kann verschiedene Datentypen verarbeiten und sie zwischen JSON und Python konvertieren. Hier ist eine Kurzreferenz:
dict
(Python) nachObjekt
(JSON)Liste
(Python) nachArray
(JSON)str
(Python) nachstring
(JSON)int
,float
(Python) bisnumber
(JSON)Wahr
,Falsch
(Python) biswahr
,falsch
(JSON)None
(Python) bisnull
(JSON)
Behandeln von JSON-Fehlern
Beim Arbeiten mit JSON können Fehler aufgrund falscher Formatierung oder unerwarteter Daten auftreten. Das Modul json
löst Ausnahmen wie JSONDecodeError
aus, wenn es auf solche Probleme stößt. Verwenden Sie die Blöcke try
und except
, um diese Fehler ordnungsgemäß zu behandeln.
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
Abschluss
Die Arbeit mit JSON-Daten ist eine grundlegende Fähigkeit für Python-Entwickler, insbesondere in der Webentwicklung und Datenwissenschaft. Das Modul json
bietet benutzerfreundliche Methoden zum Lesen, Schreiben und Bearbeiten von JSON-Daten. Wenn Sie diese Techniken beherrschen, können Sie JSON-Daten in Ihren Python-Anwendungen effizient verarbeiten.