de Programmieren Sprachen Python

Python - JSON parsen

JSON wird immer beliebter, so dass man nahezu nicht mehr drumrum kommt mit JSON zu arbeiten. Das ist auch nicht schlimm, denn jede Sprache bietet mittlerweile Mittel und Wege vernünftig mit JSON arbeiten zu können.

Ein JSON-String

Handhabt man ein JSON-String zum testen benötigt man zuerst einmal den String in der JSON-Form und natürlich muss man json auch importieren.

 1import json
 2
 3myJSON = """
 4    {
 5        "vorname": "Max",
 6        "nachname": "Mustermann",
 7        "hobbies": ["laufen", "singen"],
 8        "alter": 30,
 9        "kinder": [
10            {
11                "vorname": "Alice",
12                "alter": 4
13            },
14            {
15                "vorname": "Bob",
16                "alter": 6
17            }
18        ]
19    }
20"""

Möchten wir jetzt z.B. auf den Vornamen zugreifen müssen wir den String als JSON-Parsen (die Bibliothek macht daraus intern dann einfach ein Dictionary) und können dann anschließend unkompliziert auf die Attribute zugreifen.

1# Lade den String als JSON (Dictionary)
2data = json.loads(myJSON)

Zugreifen kann man nun einfach mittels Eckigen-Klammern und den entsprechenden Schlüssel. So werden hier z.B. Beispielhaft einige Werte ausgegeben:

1print(data["vorname"]) # Ausgabe des Vornamens
2print(data["nachname"]) # Ausgabe des Nachnamens
3print(data["hobbies"]) # Ausgabe der Hobbies

Hier können jetzt auch alle normalen Aktionen angewendet werden wie es bei anderen Dictionaries ebenfalls funktioniert.

 1# Ausgabe der Hobbies - Direktzugriff
 2for value in data["hobbies"]:
 3    print(value)
 4  
 5# Ausgabe der Hobbies über den Index
 6for index in range(len(data["hobbies"])):
 7    print(data["hobbies"][index])
 8
 9# Ausgabe aller Schlüssel mit dem dazugehörigen Wert
10for key in data:
11    print("Key " + key + " value " + str(data[key]))

Nach String (str()) wird hier nur geparst, weil hier eine Zahl innerhalb des Arrays vorkommt und wir sonst leider keine String-Konkatenation in Python machen können.

Eine JSON-Datei

Mit einer JSON-Datei kann genauso leicht umgegangen werden wie mit einem String. Dafür lesen wir zuerst die Datei ein und können der json.load() Funktion auch eine Datei mitgeben. Damit können wir ganz einfach eine Datei einlesen und parsen.

1# Lese Datei ein
2file = open("myJSON.json", "r")
3
4# Parse Datei (json.load) kann auch eine Datei entgegen nehmen
5data = json.load(file)
6
7print(data["vorname"]) # Ausgabe des Vornamens