https://a.storyblok.com/f/270183/1368x665/5a86bfc7c5/25mar_dev-blog_json-python.jpg

Wie man mit JSON in Python arbeitet: Ein Leitfaden für Anfänger

Zuletzt aktualisiert am March 18, 2025

Lesedauer: 2 Minuten

JSON (JavaScript Object Notation) wird häufig bei der Arbeit mit APIs zum Austausch von Daten zwischen Webanwendungen und Servern verwendet. Es ist leichtgewichtig, für Menschen lesbar und einfach zu analysieren.

In Python ist die Arbeit mit JSON einfach, dank der eingebauten json Moduls.

Sind Sie bereit, mit JSON in Python zu arbeiten? Fangen wir an!

Was ist JSON?

JSON ist ein textbasiertes Format, das strukturierte Daten mit Schlüssel-Wert-Paaren darstellt. Hier ist ein einfaches JSON-Beispiel aus der Antwort einer unserer Netzwerk-APIs:

{
    "phoneNumber": "+99012345678",
    "location": {
        "latitude": 50.735851,
        "longitude": 7.10066,
    },
    "is_active": true
}

JSON unterstützt verschiedene Datentypen:

  • Zeichenketten (z. B. "+99012345678")

  • Numbers (z. B. 25, 50,7358)

  • Boolesche Werte (wahr oder falsch)

  • Null (Null)

  • Objekte (Schlüssel-Wert-Paare, ähnlich den Python-Dictionaries)

  • Arrays (Listen von Werten, ähnlich den Python-Listen)

Wie man mit JSON in Python arbeitet

Python bietet ein eingebautes json Modul in seiner Standardbibliothek, das es Entwicklern ermöglicht, mit JSON-Daten zu arbeiten. Sie können es mit importieren:

import json

Parsen von JSON-Daten

JSON-Daten werden normalerweise in Python-Wörterbücher konvertiert. Zum Parsen und Konvertieren von JSON-Daten, die als String dargestellt werden, verwenden Sie json.loads()

json_data = '{"name": "Maria", "age": 25, "city": "Madrid"}' # string
parsed_data = json.loads(json_data) # Python dict

print(parsed_data["name"]) # prints “Maria”

json.loads() ist die Methode, mit der Sie das JSON aus den API-Antworten parsen.

Python-Objekte in JSON umwandeln

Um Python-Objekte in eine JSON-formatierte Zeichenkette zu konvertieren (oder zu serialisieren), verwenden Sie json.dumps()

python_dict = {"name": "John", "city": "London"}
json_string = json.dumps(python_dict)

print(json_string) # prints '{"name": "John", "city": "London"}'

Sie können die JSON-Ausgabe zur besseren Lesbarkeit auch mit Einrückungen formatieren:

formatted_json = json.dumps(python_dict, indent=4)
print(formatted_json)

Ungültige JSON-Formate lösen natürlich eine Ausnahme aus. Wir müssen diese Fehler mit der normalen Python-Ausnahmebehandlung behandeln:

try:
    invalid_json = '{"name": "John", "age": 30,}'  # Incorrect JSON
    parsed_data = json.loads(invalid_json)
except json.JSONDecodeError as e:
    print("Error decoding JSON:", e)

Lesen und Schreiben von JSON-Dateien

Um JSON-Daten in eine Datei zu schreiben, verwenden Sie json.dump():

with open("data.json", "w") as file:
    json.dump(python_dict, file, indent=4)

Um JSON-Daten aus einer Datei zu lesen, verwenden Sie json.load():

with open("data.json", "r") as file:
    data = json.load(file) # data is a Python dict
    print(data)

Andere Python-Datentypen in JSON serialisieren

In den vorherigen Beispielen haben wir gesehen, wie man Python-Dictionaries serialisiert. Python erlaubt jedoch auch die Serialisierung anderer Datentypen im JSON-Format:

Listen werden natürlich in der JSON-Serialisierung unterstützt:

list_data = ["one", "two", "three"]
json_list = json.dumps(list_data)
print(json_list)  #  ["one", "two", "three"]

Tupel können in JSON-Listen umgewandelt werden:

tuple_data = ("one", "two", "three")
json_tuple = json.dumps(tuple_data)
print(json_tuple)  #  ["one", "two", "three"]

Python-Sets müssen vor der Serialisierung in Listen umgewandelt werden:

set_data = {1, 2, 3, 4}
json_set = json.dumps(list(set_data))
print(json_set)  # [1, 2, 3, 4]

Um schließlich benutzerdefinierte Objekte zu serialisieren, müssen wir eine benutzerdefinierte Encoder-Funktion implementieren:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

def person_encoder(obj):
    if isinstance(obj, Person):
        return {"name": obj.name, "age": obj.age}
    raise TypeError("Object of type Person is not JSON serializable")

person = Person("Maria", 30)
json_person = json.dumps(person, default=person_encoder)
print(json_person) # {"name": "Alice", "age": 30}

Schlussfolgerung

Im Gegensatz zu anderen Formaten (XML, wir schauen dich an!) ist die Arbeit mit JSON in Python einfach und effizient. Wir brauchen keine zusätzlichen Abhängigkeiten, da die Python-Standardbibliothek die json Paket enthält. Die Beherrschung von JSON wird Ihnen helfen, Ihre API-Integrationen zu verbessern, insbesondere beim Parsen von API-Antworten.

Haben Sie eine Frage oder möchten Sie etwas mitteilen? Beteiligen Sie sich am Gespräch auf dem Vonage Community Slackund bleiben Sie auf dem Laufenden mit dem Entwickler-Newsletter, folgen Sie uns auf X (früher Twitter), abonnieren Sie unseren YouTube-Kanal für Video-Tutorials, und folgen Sie der Vonage Entwickler-Seite auf LinkedInein Raum für Entwickler, um zu lernen und sich mit der Community zu vernetzen. Bleiben Sie in Verbindung, teilen Sie Ihre Fortschritte und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!

Teilen Sie:

https://a.storyblok.com/f/270183/405x400/2b811a162d/alvaro-navarro.jpg
Alvaro NavarroSenior Advocate für Entwickler

Alvaro ist Developer Advocate bei Vonage und konzentriert sich auf Netzwerk-APIs. Er hat eine Leidenschaft für Developer Experience, APIs und Open Source. Außerhalb der Arbeit findet man ihn oft in Comicläden, auf Science-Fiction- und Horrorfestivals oder beim Basteln mit diesen berühmten kleinen Plastikbausteinen.