Adloun

Une page envoie ses données au format JSON plutôt qu'en urlencoded

Exercice supplémentaire · niveau 2 · NSI (première), chapitre 10 — Interagir sur le Web · Ce que la page fait toute seule

Énoncé

Une page envoie ses données au format JSON plutôt qu'en urlencoded. Le serveur, écrit en Python, reçoit la chaîne suivante :


recu = '{"pseudo": "nour", "notes": [12, 15, 9], "memoriser": false}'

Corrigé

1.


import json

recu = '{"pseudo": "nour", "notes": [12, 15, 9], "memoriser": false}'
donnees = json.loads(recu)
moyenne = sum(donnees["notes"]) / len(donnees["notes"])
print(donnees["pseudo"], moyenne, donnees["memoriser"])
# nour 12.0 False

json.loads transforme la chaîne en un dictionnaire Python, du chapitre 5 : on y accède ensuite par ses clés, comme d'habitude. L'opération inverse est json.dumps.

2. false devient False, et null devient None. Attention à la casse : JSON écrit ses booléens en minuscules, Python avec une majuscule. Un JSON contenant False est invalide.

3. Les tuples (relus comme des listes), les ensembles, et les clés qui ne sont pas des chaînes — json.dumps({1: "a"}) produit \{"1": "a"\}, et la clé revient en "1", chaîne de caractères. On peut ajouter les fonctions et tout objet un peu élaboré.

Pourquoi ce format s'est imposé : il est lisible par un humain, écrit en texte, et tout langage sait le lire. C'est précisément parce qu'il ne sait représenter que quatre types simples — nombres, chaînes, listes, dictionnaires — plus les booléens et null, qu'aucun langage n'a de mal à s'y couler. La pauvreté du format fait son universalité.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.