🗂️snt

Les donnees structurees en SNT : CSV JSON et bases de donnees

30 mars 2026 5 min de lecture

Introduction : Pourquoi structurer les données ?

Dans le monde numérique, nous sommes entourés d'informations : la liste de tes amis sur un réseau social, les notes de ton bulletin scolaire, les caractéristiques d'un produit en ligne... Toutes ces données doivent être organisées pour être comprises et traitées par les machines. C'est l'objectif des données structurées. En SNT, tu vas apprendre à maîtriser les principaux formats qui permettent cette organisation : le CSV et le JSON. Ces formats sont partout, de l'export de ton emploi du temps à l'API de ton jeu vidéo préféré. Comprendre leur fonctionnement, c'est acquérir une compétence fondamentale du numérique.

Le format CSV : la simplicité tabulaire

CSV signifie Comma-Separated Values, ou valeurs séparées par des virgules. C'est un format de fichier texte extrêmement simple et universel pour représenter des données tabulaires, comme un tableau Excel ou une feuille de calcul.

Structure d'un fichier CSV

Un fichier CSV est organisé en lignes et en colonnes :

  • La première ligne contient généralement les en-têtes, c'est-à-dire les noms des colonnes (par exemple : Nom, Prénom, Âge, Classe).
  • Chaque ligne suivante représente un enregistrement, une donnée complète.
  • Les valeurs dans une ligne sont séparées par un caractère délimiteur, le plus souvent une virgule (,) ou un point-virgule (;).

Voici un exemple concret :

Nom,Prénom,Âge,Classe
Dupont,Jean,16,1G1
Martin,Léa,15,2nde3
Bernard,Paul,17,Tle

Tu vois ? C'est lisible même par un humain ! Cette simplicité fait la force du CSV. Il est parfait pour échanger des données entre différents logiciels (tableurs, bases de données) ou pour stocker des listes simples.

Manipuler un CSV avec Python

En SNT, tu utiliseras Python pour lire et écrire des fichiers CSV. La bibliothèque csv est intégrée à Python et rend l'opération très simple.

Pour lire un fichier CSV :

import csv
with open('eleves.csv', newline='', encoding='utf-8') as fichier:
lecteur = csv.DictReader(fichier)
for ligne in lecteur:
print(f"{ligne['Prénom']} {ligne['Nom']} est en {ligne['Classe']}")

Cette méthode avec DictReader est très pratique car elle transforme chaque ligne en un dictionnaire, où les clés sont les noms des colonnes.

Le format JSON : la flexibilité pour les applications

JSON, pour JavaScript Object Notation, est un autre format texte, mais plus riche et structuré que le CSV. Il est né pour les applications web, mais est aujourd'hui utilisé partout.

La syntaxe JSON

JSON organise les données sous forme de paires clé/valeur et de listes ordonnées. Cela ressemble beaucoup aux dictionnaires et listes en Python !

  • Les objets sont entourés d'accolades { } et contiennent des paires clé:valeur.
  • Les tableaux (listes) sont entourés de crochets [ ].
  • Les valeurs peuvent être des chaînes de caractères (entre guillemets), des nombres, des booléens (true/false), d'autres objets ou tableaux.

Exemple de données représentant un livre :

{
"titre": "Le Petit Prince",
"auteur": "Antoine de Saint-Exupéry",
"annee": 1943,
"personnages": ["Le petit prince", "Le renard", "Le pilote"],
"disponible": true
}

Cette structure hiérarchique permet de représenter des données bien plus complexes qu'un simple tableau.

Lire et écrire du JSON en Python

Python possède une bibliothèque dédiée, json, pour manipuler ce format.

Pour lire (parser) une chaîne JSON :

import json
# Données JSON sous forme de chaîne
donnees_texte = '{"ville": "Paris", "habitants": 2161000}'
# Conversion en dictionnaire Python
donnees_python = json.loads(donnees_texte)
print(donnees_python["ville"]) # Affiche : Paris

Pour lire un fichier JSON :

with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)

JSON est le format roi pour les API (Interfaces de Programmation d'Application). Quand une application mobile interroge un serveur pour obtenir la météo, le serveur lui répond très souvent au format JSON.

CSV vs JSON : lequel choisir ?

Les deux formats ont leurs forces. Voici un petit guide pour t'aider :

  • Choisis le CSV si :
    • Tes données sont purement tabulaires (comme un tableau).
    • Tu dois les ouvrir ou les modifier facilement dans un tableur (Excel, Calc, Sheets).
    • La simplicité et la légèreté du fichier sont prioritaires.
  • Choisis le JSON si :
    • Tes données ont une structure hiérarchique ou complexe (des objets dans des objets).
    • Tu échanges des données entre des applications web ou des programmes.
    • Tu utilises des API.
    • Tu as besoin de types de données précis (booléens, null).

En résumé : CSV pour les tableaux simples, JSON pour les structures complexes et les échanges entre programmes.

Aller plus loin : les bases de données relationnelles

Les fichiers CSV et JSON sont parfaits pour échanger ou stocker de petites quantités de données. Mais quand les volumes deviennent importants (des milliers d'articles en ligne, tous les clients d'une banque), on utilise des bases de données.

Une base de données relationnelle (comme SQLite, MySQL ou PostgreSQL) organise les données dans des tables (un peu comme des feuilles CSV) qui peuvent être liées entre elles par des relations. Le langage utilisé pour interagir avec elles est le SQL (Structured Query Language).

En SNT, tu pourras être amené à utiliser SQLite, une base de données légère intégrée à de nombreux systèmes. Voici un exemple de requête SQL simple :

SELECT nom, prenom FROM eleves WHERE classe = '1G1' ORDER BY nom;

Cette requête signifie : "Sélectionne les colonnes 'nom' et 'prenom' dans la table 'eleves', uniquement pour les élèves de la classe '1G1', et trie les résultats par nom."

Les bases de données sont la colonne vertébrale de la plupart des sites web et applications que tu utilises quotidiennement.

Conclusion et mise en pratique

Maîtriser CSV et JSON, c'est comprendre les fondements de l'échange d'informations dans le monde numérique. Ces formats sont des outils indispensables, que tu continues en NSI ou non.

Projet pratique pour toi :

  1. Crée un fichier CSV films.csv avec tes films préférés (Titre, Réalisateur, Année, Note).
  2. Écris un script Python qui lit ce fichier et affiche seulement les films sortis après 2010.
  3. Maintenant, convertis ces données en un fichier JSON films.json où chaque film est un objet. Ajoute une clé "acteurs_principaux" qui contient une liste.
  4. Écris un autre script pour lire le JSON et afficher les titres des films.

En réalisant ce petit projet, tu auras pratiqué les compétences essentielles de la gestion des données structurées !

📚 Pour aller plus loin

Questions fréquentes

Quelle est la différence principale entre CSV et JSON ?

La différence fondamentale est la structure. Le CSV est purement tabulaire (lignes et colonnes), comme un tableau Excel. Le JSON est hiérarchique et peut représenter des données imbriquées (des listes dans des objets, etc.), ce qui le rend plus adapté aux structures complexes. Le CSV est plus simple et lisible dans un tableur, le JSON est plus flexible pour les échanges entre programmes.

Faut-il mettre des guillemets autour des nombres dans un fichier CSV ?

Non, en général, pas besoin. Dans un CSV standard, seules les chaînes de caractères qui contiennent le caractère séparateur (la virgule) ou un saut de ligne doivent être entourées de guillemets. Les nombres sont écrits directement. Par exemple : `Dupont,Jean,16` est correct. Si un champ texte contient une virgule, il faut le protéger : `"Dupont, Martin",Jean,16`.

Je veux stocker une liste de notes pour chaque élève. Dois-je utiliser CSV ou JSON ?

Dans ce cas, JSON est probablement plus adapté. En CSV, tu devrais soit créer une colonne par note (peu pratique), soit mettre toutes les notes dans une seule cellule séparées par un autre caractère (c'est désordonné). En JSON, tu peux facilement avoir une structure comme : `{"nom": "Léa", "notes": [15, 18, 12]}`. Cela représente bien la relation "un élève a plusieurs notes".

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
donnees structurees SNTCSV JSON
Pixel