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
Anfrage sitzt! Als Nächstes: Fehler behandeln.