Zum Hauptinhalt springen

JSON aus einer Web-Anfrage lesen

Beispiel (Standardbibliothek)

import json
from urllib.request import urlopen

url = "https://jsonplaceholder.typicode.com/todos/1"
with urlopen(url, timeout=10) as response:
roh = response.read().decode("utf-8")
daten = json.loads(roh)

print(daten)
print(daten["title"])

jsonplaceholder ist eine Demo-API zum Üben (kein echter To-do-Dienst für die Schule).

requests (optional)

Viele nutzen das Paket requests – muss installiert sein:

# pip install requests
import requests
daten = requests.get(url, timeout=10).json()

Im Kurs reichen oft urllib + json.

Rate mal!

Was passiert ohne Internet?

Auflösung

Die Anfrage scheitert – Fehlerbehandlung kommt als Nächstes.

Probiere es selbst

Experiment 1

Todo 1 laden und title printen.

Experiment 2

Ein anderes id versuchen (/todos/2).

Experiment 3

Keys des Dicts anschauen.

Fehlerdetektiv

URL tippen falsch – Fehlermeldung lesen, URL prüfen.

Übungen

Level 1

Anfrage + print raw text (kurz).

Level 2

JSON parsen und ein Feld ausgeben.

Level 3

Funktion lade_todo(id).

Level-3-Lösung
import json
from urllib.request import urlopen

def lade_todo(todo_id: int) -> dict:
url = f"https://jsonplaceholder.typicode.com/todos/{todo_id}"
with urlopen(url, timeout=10) as response:
return json.loads(response.read().decode("utf-8"))

print(lade_todo(1)["title"])

Mini-Quiz

Mini-QuizWelches Modul parst den JSON-Text?

Anfrage sitzt! Als Nächstes: Fehler behandeln.