Vous recevez un fichier .json alors que votre tableur attend du .csv. Votre collègue DevOps vous envoie un fichier .yaml que vous ne savez pas ouvrir. Votre API renvoie du JSON mais votre rapport doit être en CSV. Les formats de données sont partout, et savoir quand utiliser lequel — et comment passer de l'un à l'autre — est une compétence de plus en plus indispensable.
Le CSV : la simplicité universelle
Comment ça marche
CSV signifie « Comma-Separated Values » (valeurs séparées par des virgules). C'est le format le plus simple possible pour des données tabulaires :
nom,prénom,âge,ville
Dupont,Marie,34,Paris
Martin,Pierre,28,Lyon
Durand,Sophie,41,Marseille
Chaque ligne est un enregistrement, chaque virgule sépare un champ. C'est lisible par n'importe quel tableur (Excel, Google Sheets, LibreOffice Calc) et par n'importe quel langage de programmation.
Les forces du CSV
- Universalité : tout logiciel sait lire du CSV
- Simplicité : format texte brut, aucune syntaxe complexe
- Légèreté : peu de caractères « inutiles » (pas de balises, pas d'accolades)
- Excel-friendly : ouvre directement dans un tableur
Les limites du CSV
- Pas de données imbriquées (impossible de représenter un objet dans un objet)
- Pas de typage (tout est du texte)
- Problèmes d'encodage fréquents (accents, séparateurs)
- Ambiguïté quand une valeur contient une virgule
Attention En France et dans de nombreux pays européens, le séparateur décimal est la virgule (3,14 au lieu de 3.14). Cela crée des conflits avec le CSV qui utilise aussi la virgule comme séparateur de champs. La solution : utiliser le point-virgule comme séparateur, ce qu'Excel fait par défaut en configuration française.
Le JSON : la structure pour les développeurs
Comment ça marche
JSON signifie « JavaScript Object Notation ». C'est un format structuré qui supporte les données imbriquées :
{
"employés": [
{
"nom": "Dupont",
"prénom": "Marie",
"âge": 34,
"adresse": {
"ville": "Paris",
"codePostal": "75001"
}
}
]
}
Les forces du JSON
- Structure : objets imbriqués, tableaux, relations complexes
- Typage : distingue les nombres, les chaînes, les booléens et null
- Standard du web : format par défaut des API REST
- Pris en charge par tous les langages de programmation
Les limites du JSON
- Verbeux pour les données tabulaires simples
- Pas de commentaires (impossible d'annoter le fichier)
- Les virgules en fin de liste provoquent des erreurs
- Moins lisible que le YAML pour les fichiers de configuration
Le saviez-vous ? JSON a été formalisé par Douglas Crockford en 2001, mais sa syntaxe existait déjà implicitement dans JavaScript depuis 1995. Crockford n'a pas inventé le format : il l'a « découvert » et standardisé. C'est pour cette raison qu'il aime dire qu'il n'a pas de brevet sur JSON — on ne peut pas breveter une découverte.
Le YAML : la lisibilité avant tout
Comment ça marche
YAML signifie « YAML Ain't Markup Language » (un acronyme récursif). C'est un format qui privilégie la lisibilité humaine en utilisant l'indentation plutôt que des accolades :
employés:
- nom: Dupont
prénom: Marie
âge: 34
adresse:
ville: Paris
codePostal: "75001"
Les forces du YAML
- Lisibilité : le format le plus facile à lire et écrire pour un humain
- Commentaires : supporte les commentaires avec
# - Superset de JSON : tout JSON valide est du YAML valide
- Idéal pour la configuration : Docker Compose, Kubernetes, GitHub Actions, Ansible
Les limites du YAML
- L'indentation est significative (une erreur d'espace casse tout)
- Comportements surprenants (le mot
noest interprété comme un booléenfalse) - Plus lent à parser que le JSON
- Moins adapté au transfert de données entre machines
Astuce En YAML, encadrez toujours les valeurs ambiguës avec des guillemets. Les chaînes comme yes, no, true, false, null et les nombres comme 1.0 ou 007 sont automatiquement convertis en types non-texte si vous ne les protégez pas avec des guillemets.
Comparaison des trois formats
| Critère | CSV | JSON | YAML |
|---|---|---|---|
| Lisibilité humaine | Bonne (tabulaire) | Moyenne | Excellente |
| Données imbriquées | Non | Oui | Oui |
| Commentaires | Non | Non | Oui |
| Typage des données | Non | Oui | Oui |
| Compatible Excel | Oui | Non (nativement) | Non |
| Usage principal | Export de données | API, données web | Configuration |
| Taille du fichier | Petit | Moyen | Moyen |
Quand utiliser quel format
Choisissez le CSV quand :
- Vos données sont une simple table (lignes et colonnes)
- Vous devez ouvrir les données dans Excel ou Google Sheets
- Vous exportez depuis une base de données
- Vous échangez des données avec des non-techniciens
Choisissez le JSON quand :
- Vos données sont structurées et imbriquées
- Vous communiquez avec une API
- Vous stockez des paramètres d'application
- Vous échangez des données entre systèmes informatiques
Choisissez le YAML quand :
- Vous écrivez un fichier de configuration
- La lisibilité humaine est prioritaire
- Vous utilisez Docker, Kubernetes, Ansible ou GitHub Actions
- Vous avez besoin de commentaires dans le fichier
Convertir entre les formats
La conversion entre ces formats est souvent nécessaire :
- JSON vers CSV : pour analyser des données d'API dans un tableur
- CSV vers JSON : pour importer des données Excel dans une application web
- JSON vers YAML : pour rendre un fichier de configuration plus lisible
- YAML vers JSON : pour valider la syntaxe ou l'envoyer à une API
Attention La conversion de JSON ou YAML vers CSV implique un « aplatissement » des données imbriquées. Un objet JSON avec trois niveaux d'imbrication ne se traduit pas naturellement en lignes et colonnes. Les clés imbriquées sont généralement concaténées (ex : adresse.ville) ou les sous-objets sont sérialisés en texte.
Pour convertir entre ces formats instantanément : Convertir entre formats de données.
Les erreurs courantes
En CSV
- Oublier d'échapper les virgules dans les valeurs (encadrer avec des guillemets)
- Mélanger les séparateurs (virgule vs point-virgule)
- Problèmes d'encodage UTF-8 vs Latin-1 (accents cassés dans Excel)
En JSON
- Virgule après le dernier élément d'un tableau ou d'un objet
- Utiliser des guillemets simples au lieu de doubles
- Oublier de typer les chaînes qui ressemblent à des nombres
En YAML
- Indentation incohérente (mélange de tabulations et d'espaces)
- Oublier les guillemets autour des valeurs ambiguës
- Confondre
-(élément de liste) et clé d'objet
Le saviez-vous ? Le format TOML (Tom's Obvious Minimal Language) est une alternative montante au YAML pour les fichiers de configuration. Utilisé par Cargo (Rust), pyproject.toml (Python) et Hugo, il combine la lisibilité du YAML avec une syntaxe moins ambiguë.
En résumé
CSV, JSON et YAML sont trois outils complémentaires, chacun optimisé pour un usage différent. Le CSV excelle pour les données tabulaires simples, le JSON pour les données structurées et les échanges entre machines, et le YAML pour les fichiers de configuration lisibles par des humains.
Savoir convertir entre ces formats est une compétence pratique qui vous fera gagner du temps au quotidien. Essayez maintenant : convertissez vos données entre JSON, YAML et CSV en quelques clics.