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) nach Objekt (JSON)
  • Liste (Python) nach Array (JSON)
  • str (Python) nach string (JSON)
  • int, float (Python) bis number (JSON)
  • Wahr, Falsch (Python) bis wahr, falsch (JSON)
  • None (Python) bis null (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.