18  JSON-Dateien

JSON (JavaScript Object Notation) ist ein weit verbreitetes, textbasiertes Datenformat, das sich durch seine einfache Lesbarkeit und Schreibbarkeit auszeichnet. Es eignet sich hervorragend für den Datenaustausch zwischen verschiedenen Systemen und Programmiersprachen.

JSON-Daten bestehen aus Schlüssel-Wert-Paaren und unterstützen folgende Datentypen:

  1. Zeichenketten (Strings)
  2. Zahlen
  3. Boolesche Werte (true/false)
  4. null
  5. Arrays (Listen)
  6. Objekte (ähnlich wie Dictionaries in Python)

Beispiel einer JSON-Datei:

{
    "Personen": [
        {
            "Name": "Max",
            "Alter": 24,
            "Stadt": "Berlin"
        },
        {
            "Name": "Anna",
            "Alter": 30,
            "Stadt": "Hamburg"
        },
        {
            "Name": "Tom",
            "Alter": 22,
            "Stadt": "München"
        }
    ]
}

In diesem Beispiel enthält die JSON-Datei ein Objekt mit dem Schlüssel “Personen”, der eine Liste von Objekten speichert. Jedes dieser Objekte repräsentiert eine Person mit den Attributen “Name”, “Alter” und “Stadt”.

18.1 Schreiben und Lesen einer JSON-Datei

Das Bearbeiten von Daten im JSON-Format erfolgt mithilfe der json-Bibliothek.

18.1.1 JSON schreiben

Die Methode json.dump() ermöglicht das Speichern eines Python-Dictionaries in eine JSON-Datei.

Zuerst erstellen wir daher ein Python-Dictionary namens daten. Dieses Dictionary enthält einen Schlüssel Personen, dem eine Liste von Dictionaries zugeordnet ist. Jedes innere Dictionary repräsentiert eine Person mit Name, Alter und Stadt.

import json
# Daten erstellen
daten = {
    "Personen": [
        {"Name": "Max", "Alter": 24, "Stadt": "Berlin"},
        {"Name": "Anna", "Alter": 30, "Stadt": "Hamburg"},
        {"Name": "Tom", "Alter": 22, "Stadt": "München"}
    ]
}
# JSON-Datei speichern
with open('daten.json', 'w') as jsonfile:
    json.dump(daten, jsonfile, indent=4)
  1. Importieren der JSON-Bibliothek:

    import json

    Die JSON-Bibliothek ist in Python integriert und muss nicht separat installiert werden.

  2. Erstellen der Daten: Die Daten werden als verschachteltes Dictionary angelegt, das die Struktur der gewünschten JSON-Datei widerspiegelt.

  3. Speichern der Daten:

    with open('daten.json', 'w') as jsonfile:
        json.dump(daten, jsonfile, indent=4)
    • Der with-Befehl stellt sicher, dass die Datei nach dem Schreibvorgang automatisch geschlossen wird.
    • 'daten.json' ist der Name der zu erstellenden Datei.
    • 'w' öffnet die Datei im Schreibmodus (write).
    • json.dump() konvertiert das Python-Dictionary in JSON-Format und schreibt es in die Datei.
    • indent=4 sorgt für eine formatierte, leicht lesbare Ausgabe mit Einrückungen.

18.1.2 JSON einlesen

Das Einlesen von JSON-Dateien in Python erfolgt ebenfalls mit der json-Bibliothek. Die Methode json.load() wandelt den Inhalt einer JSON-Datei in ein Python-Dictionary um.

import json

# JSON-Datei lesen
with open('daten.json', 'r') as jsonfile:
    daten = json.load(jsonfile)

print(daten)
{'Personen': [{'Name': 'Max', 'Alter': 24, 'Stadt': 'Berlin'}, {'Name': 'Anna', 'Alter': 30, 'Stadt': 'Hamburg'}, {'Name': 'Tom', 'Alter': 22, 'Stadt': 'München'}]}
  1. Öffnen und Lesen der JSON-Datei:

    with open('daten.json', 'r') as jsonfile:
        daten = json.load(jsonfile)
    • 'daten.json' ist der Name der zu lesenden Datei.
    • 'r' öffnet die Datei im Lesemodus (read).
    • json.load() liest den Inhalt der Datei und konvertiert ihn in ein Python-Dictionary.
  2. Ausgabe der gelesenen Daten:

    print(daten)

    Dies zeigt den Inhalt des eingelesenen Dictionaries an und ermöglicht eine Überprüfung der korrekten Datenstruktur.