En NSI, tu vas très vite rencontrer le fameux JSON (JavaScript Object Notation). Pas de panique : c'est un format de données ultra simple, utilisé partout sur le web. Dans cet article, on va décortiquer ensemble ce qu'est le JSON, comment l'écrire, comment le manipuler en Python, et pourquoi il est essentiel pour les données structurées. À la fin, tu seras prêt.e pour le bac !
Qu'est-ce que le format JSON ?
Le JSON est un format de texte qui permet de représenter des données de manière organisée. Il a été conçu pour être facile à lire pour les humains et facile à analyser pour les machines. Concrètement, c'est une façon de structurer des informations sous forme de paires clé-valeur et de listes.
Les deux structures de base
Le JSON repose sur deux structures :
- L'objet : un ensemble de paires clé-valeur, entouré d'accolades
{}. Par exemple :{"nom": "Marie", "age": 17}. - Le tableau : une liste ordonnée de valeurs, entourée de crochets
[]. Par exemple :["NSI", "Maths", "Physique"].
Ces structures peuvent s'imbriquer : un objet peut contenir des tableaux, et un tableau peut contenir des objets. C'est cette flexibilité qui rend le JSON si puissant.
Types de données autorisés
Dans un fichier JSON, tu peux stocker :
- Des chaînes de caractères (entre guillemets doubles) :
"Bonjour" - Des nombres (entiers ou décimaux) :
42,3.14 - Des booléens :
trueoufalse - Des valeurs nulles :
null - Des objets et des tableaux, comme vu ci-dessus
Attention : en JSON, les clés doivent être des chaînes de caractères entre guillemets doubles. Les guillemets simples ne sont pas acceptés (contrairement à Python).
Pourquoi le JSON est-il si utilisé en NSI ?
Le programme de NSI met l'accent sur la représentation et le traitement des données. Le JSON est devenu un standard pour échanger des données entre un serveur et un client (par exemple, une page web). Quand tu utilises une API (interface de programmation), les données sont souvent renvoyées en JSON. Comprendre ce format te permet de récupérer des informations depuis le web et de les exploiter dans tes programmes.
De plus, le JSON est très proche des dictionnaires Python : c'est un atout ! Si tu sais manipuler un dictionnaire en Python, tu sauras manipuler du JSON (après une petite conversion).
Manipuler le JSON en Python : les bases
Python propose le module json pour convertir des données Python en JSON et inversement. Voici les deux fonctions essentielles :
json.dumps(): transforme un objet Python (dictionnaire, liste) en chaîne JSON.json.loads(): transforme une chaîne JSON en objet Python.
Exemple pas à pas
Imaginons que tu veuilles représenter un élève avec son nom, son âge et ses matières préférées. En Python, tu peux créer un dictionnaire :
import json
eleve = {
"nom": "Lucas",
"age": 17,
"matieres": ["NSI", "Maths", "Physique"],
"est_lyceen": True
}
# Conversion en chaîne JSON
json_str = json.dumps(eleve, ensure_ascii=False)
print(json_str)
# Sortie : {"nom": "Lucas", "age": 17, "matieres": ["NSI", "Maths", "Physique"], "est_lyceen": true}Note que True devient true en JSON (minuscule). Le paramètre ensure_ascii=False permet de garder les caractères accentués tels quels, sinon ils seraient convertis en \u.
Maintenant, l'inverse : à partir d'une chaîne JSON, on obtient un dictionnaire Python.
json_data = '{"nom": "Lucas", "age": 17}'
eleve = json.loads(json_data)
print(eleve["nom"]) # Affiche Lucas
print(type(eleve)) # <class 'dict'>Et voilà, tu sais déjà lire et écrire du JSON !
Cas d'usage concret : lire un fichier JSON
En NSI, on te demandera souvent de lire des données depuis un fichier .json. Par exemple, un fichier eleves.json contenant une liste d'élèves :
[
{"nom": "Lucas", "age": 17},
{"nom": "Marie", "age": 16}
]Pour le lire et afficher les noms, on fait :
import json
with open("eleves.json", "r", encoding="utf-8") as f:
eleves = json.load(f)
for eleve in eleves:
print(eleve["nom"])Ce pattern est très courant : json.load() (sans 's') pour lire un fichier, json.loads() pour lire une chaîne.
De même, pour écrire un fichier JSON, on utilise json.dump() :
import json
nouvelles_donnees = {"nom": "Chloé", "age": 16}
with open("eleves.json", "a", encoding="utf-8") as f:
# Attention : il faut gérer l'ajout à la liste, ici on écrase
json.dump(nouvelles_donnees, f, ensure_ascii=False)Mais attention, écrire dans un fichier JSON demande de la rigueur : il faut souvent charger tout le fichier, modifier la structure, puis réécrire.
JSON et API : un duo incontournable
Quand tu interroges une API (par exemple, une API météo ou une API de données publiques), la réponse est souvent au format JSON. Voici un exemple simplifié avec la bibliothèque requests (à installer si ce n'est pas déjà fait) :
import requests
import json
url = "https://api.exemple.com/meteo?ville=Paris"
reponse = requests.get(url)
donnees = reponse.json() # Convertit directement en dict Python
print(donnees["temperature"])Grâce à .json(), tu obtiens directement un dictionnaire ou une liste Python, que tu peux manipuler comme tu veux. C'est un vrai super-pouvoir !
Erreurs fréquentes à éviter
Quand tu manipules du JSON, tu risques de tomber sur des erreurs. Voici les plus courantes :
- Oublier les guillemets doubles : les clés et les chaînes doivent être entre
", sinon erreur. - Utiliser des virgules en trop : dans un objet, la dernière paire clé-valeur ne doit pas être suivie d'une virgule.
- Confondre
trueetTrue: en JSON, c'est en minuscules. - Oublier l'encodage : quand tu ouvres un fichier, pense à
encoding="utf-8"pour les accents.
En cas d'erreur de parsing, Python te donnera un message avec la ligne et le caractère incriminé. Lis-le attentivement, c'est ton meilleur ami pour débugger !
JSON vs autres formats de données
En NSI, tu verras aussi d'autres formats comme le CSV ou le XML. Le JSON a plusieurs avantages :
- Légèreté : moins verbeux que le XML.
- Lisibilité : facile à comprendre pour un humain.
- Intégration naturelle avec JavaScript : c'est le format natif du web.
Cependant, le CSV est plus simple pour des tableaux plats, et le XML permet des métadonnées plus riches. Tout dépend de l'usage !
Se préparer au bac NSI : le JSON en exercice
Au bac, tu peux avoir des exercices où il faut :
- Interpréter un fichier JSON donné.
- Écrire un script Python qui lit un fichier JSON et extrait des informations.
- Créer un JSON à partir d'un dictionnaire Python.
Pour t'entraîner, tu peux consulter nos exercices NSI et nos cours dédiés. Tu peux aussi revoir les bases des bases de données SQL pour comparer avec le JSON.
Un conseil : entraîne-toi à manipuler des fichiers JSON avec Python sur des données réelles (par exemple, des données ouvertes de ta ville). Plus tu pratiques, plus c'est naturel.
Conclusion
Le JSON est un format simple mais incontournable en NSI. Tu sais maintenant ce que c'est, comment l'écrire, et comment le manipuler en Python. C'est une compétence clé pour le bac et pour la suite de tes études en informatique. Continue à t'exercer, et n'hésite pas à explorer des API pour voir le JSON en action. Tu vas y arriver !
Si tu veux aller plus loin, consulte aussi nos ressources sur AlloBac et AlloLycée pour des révisions complètes.
