ConsigneUne API REST renvoie ses données au format JSON. Parse la chaîne JSON fournie (variable reponse) avec json.loads, puis affiche le name de l'utilisateur, puis son email (chacun sur une ligne).
urllib.request est le module standard pour faire des requêtes http — sans dépendance externe. Pour des cas plus avancés, beaucoup utilisent la lib tierce requests, mais urllib suffit pour démarrer.
Import
import urllib.requestimport jsonurl = 'https://jsonplaceholder.typicode.com/users/1'with urllib.request.urlopen(url) as response: data = json.loads(response.read())print(data['name'])print(data['email'])Étapes
1. urlopen(url) ouvre la connexion HTTP, renvoie une réponse2. response.read() lit le contenu brut (bytes)3. json.loads(...) convertit le JSON reçu en dict Pythonurlopen lit en bytes, pas en str. json.loads accepte les deux donc ça passe sans .decode(). Pour du texte brut : response.read().decode('utf-8').
from urllib.error import URLError, HTTPErrortry: with urllib.request.urlopen(url, timeout=5) as r: ...except HTTPError as e: print(f'Erreur HTTP {e.code}') # 404, 500, ...except URLError as e: print(f'Erreur réseau: {e.reason}')Le paramètre timeout (en secondes) évite que la requête bloque indéfiniment.
import requestsr = requests.get(url, timeout=5)r.raise_for_status() # déclenche une exception si code 4xx/5xxdata = r.json() # parsing JSON automatiqueUne api rest expose des ressources via des URLs et des méthodes http :
GET /users/1 lire la ressourcePOST /users créerPUT /users/1 modifierDELETE /users/1 supprimerLes données sont souvent échangées en json.
jsonplaceholder.typicode.com est une fausse api publique, parfaite pour s'entraîner sans casser un vrai service.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →