JSON et CSV sont deux des façons les plus courantes de stocker et de déplacer des données structurées, et la plupart des personnes travaillant avec des données font constamment face à ce choix : une API vous remet du JSON, un tableur attend du CSV, et un scraper peut généralement produire l'un ou l'autre. Ils semblent interchangeables dans de petits exemples, mais ils font des compromis opposés, et choisir le mauvais se manifeste plus tard sous forme de fichiers gonflés, d'exports avec perte ou de code d'analyse qui se bat contre le format.

Ce texte expose ce qu'est réellement chaque format, les compare sur les dimensions qui comptent (structure, lisibilité, imbrication, taille, outillage et usage typique), puis vous donne une règle claire pour savoir quand utiliser chacun. À la fin, vous devriez être capable de regarder un jeu de données et de savoir en quelques secondes quel format convient, et comment convertir entre les deux quand vous avez besoin des deux.

JSON vs CSV en un coup d'œil

La version courte : JSON est un format imbriqué et auto-descriptif conçu pour les programmes et les API, tandis que CSV est un format plat et tabulaire conçu pour les tableurs et les données en lignes et colonnes simples. JSON porte sa propre structure et ses types de données ; CSV n'est que du texte séparé par des virgules. Voici comment les deux se comparent sur les dimensions qui décident généralement du choix.

Dimension JSON CSV
Structure Imbriqué et hiérarchique (objets et tableaux) Plat et tabulaire (lignes et colonnes)
Lisibilité Auto-descriptif via des paires clé-valeur ; clair indenté Compact, mais perd le contexte en grandissant et quand les valeurs contiennent des virgules
Imbrication Support natif d'objets dans les objets et les tableaux Aucune ; les données imbriquées doivent être aplaties ou encodées en chaîne
Types de données Chaînes, nombres, booléens, null, tableaux, objets Texte brut et nombres uniquement ; tout le reste est une chaîne
Taille du fichier Plus grand ; répète les clés et ajoute des accolades et des crochets Plus petit ; pas de caractères structurels au-delà du délimiteur
Outillage API, langages de programmation, applications web et mobiles Excel, Google Sheets, bases de données, pandas
Usage typique Réponses API, données dynamiques et en couches Exports, analyse, échange de données plates

Presque toutes les autres différences entre les deux découlent de la première ligne. JSON imbrique, CSV ne le fait pas, et le reste (taille, support des types, quels outils l'ouvrent) découle de ce seul fait structurel.

Qu'est-ce que JSON ?

JSON (JavaScript Object Notation) est un format léger d'échange de données devenu une pierre angulaire du développement web moderne. Il a commencé comme un sous-ensemble de JavaScript mais est maintenant indépendant du langage, supporté par pratiquement tous les langages de programmation, ce qui explique pourquoi il est devenu le moyen par défaut pour les services de communiquer entre eux.

JSON représente les données sous forme de paires clé-valeur, et ces paires peuvent s'imbriquer. Une valeur peut être une chaîne, un nombre, un booléen, null, un tableau ou un autre objet, donc JSON peut décrire des enregistrements complexes et hiérarchiques dans un seul document. Voici un petit exemple :

json
{
  "name": "John Doe",
  "age": 30,
  "skills": ["JavaScript", "Python", "SQL"],
  "address": {
    "city": "New York",
    "zip": "10001"
  }
}

Remarquez comment skills contient un tableau et address contient un autre objet. Cette capacité à représenter des objets, des tableaux et des relations imbriquées dans un document auto-descriptif unique est exactement ce qui fait de JSON le format par défaut pour les API et les applications web. Endroits courants où on le trouve :

  • API. JSON est le format le plus courant pour l'échange de données dans les API, permettant une communication propre entre client et serveur.
  • Développement web. Les systèmes frontend et backend s'appuient sur JSON pour déplacer des données structurées dynamiquement.
  • Transfert de données entre systèmes. Sa forme compacte et facilement analysable simplifie l'échange entre applications mobiles, bases de données et services web.

Qu'est-ce que CSV ?

CSV (Comma-Separated Values) est l'un des formats les plus simples et les plus largement utilisés pour stocker des données structurées. Sa conception simple en a fait un pilier pour organiser des données en lignes et colonnes, comme un tableau dans un tableur.

Un fichier CSV représente les données dans une structure plate et tabulaire : chaque ligne est un enregistrement et chaque colonne est un champ, avec des valeurs séparées par des virgules (ou parfois des tabulations ou des points-virgules). Voici un exemple basique :

csv
Name,Age,Skills,City
John Doe,30,JavaScript;Python;SQL,New York
Jane Smith,25,HTML;CSS,Los Angeles

Contrairement à JSON, CSV n'est pas organisé hiérarchiquement et ne contient réellement que du texte brut et des nombres simples. Notez la colonne Skills ci-dessus : une liste a dû être entassée dans une seule cellule avec un délimiteur point-virgule, car CSV n'a aucun moyen natif d'exprimer une liste. Cette simplicité est aussi sa force, rendant CSV facile à générer, analyser et partager. Endroits courants où on le trouve :

  • Tableurs. Des outils comme Microsoft Excel et Google Sheets importent et exportent CSV par défaut.
  • Bases de données. CSV est un moyen courant de transférer des données entre des bases de données ou de peupler de nouvelles tables.
  • Partage léger de données. Parce que les fichiers sont compacts et faciles à éditer, CSV est pratique pour passer des données entre équipes et plateformes.

Principales différences entre JSON et CSV

Le tableau ci-dessus est la référence rapide. Il vaut la peine de parcourir les principales dimensions un peu plus en profondeur, car chacune pointe vers une vraie décision que vous aurez à prendre.

Structure : hiérarchique vs plate

JSON supporte les structures imbriquées, il peut donc représenter des relations hiérarchiques directement : des tableaux dans des objets, des objets dans des objets, aussi profondément que les données en ont besoin. CSV est strictement plat et tabulaire. Il ne peut pas exprimer l'imbrication ou les relations, donc tout ce qui est hiérarchique doit être aplati en colonnes supplémentaires ou encodé dans une seule cellule en tant que chaîne. C'est la différence qui entraîne toutes les autres.

Lisibilité : auto-descriptif vs compact

JSON est lisible et intuitif quand il est indenté, car chaque valeur est à côté de la clé qui la nomme ; vous pouvez comprendre la forme d'un enregistrement en un coup d'œil. CSV est plus compact, mais il s'appuie sur la position des colonnes plutôt que sur des étiquettes, donc les grands fichiers deviennent difficiles à suivre, et les valeurs qui contiennent elles-mêmes des virgules nécessitent des guillemets ou un échappement pour rester analysables.

Taille du fichier : surcharge vs efficacité

JSON est généralement plus grand parce qu'il répète les clés sur chaque enregistrement et ajoute des accolades, des crochets et des guillemets. Cette surcharge s'accumule sur des milliers de lignes. CSV est léger : il écrit l'en-tête une fois puis ne porte que des valeurs et des délimiteurs, donc pour les grands jeux de données plats il est notablement plus petit sur disque et plus rapide à déplacer.

Types de données : riches vs bruts

JSON distingue les chaînes, les nombres, les booléens, null, les tableaux et les objets, et les parseurs restituent fidèlement ces types. CSV stocke tout sous forme de texte. Un lecteur doit déduire que 30 est un nombre ou que true est un booléen, et les valeurs complexes doivent être aplaties ou encodées en chaînes, ce qui complique l'analyse au retour.

Outillage et usage typique

JSON est le langage des API, des applications web et mobiles, et de tout scénario avec des données en couches ou dynamiques ; il est à l'aise partout où un programme est le consommateur. CSV est le langage des tableurs et de l'analyse : importez-le dans Excel, Google Sheets ou pandas et vous travaillez en quelques secondes. Le format que vous choisissez est souvent simplement une fonction de ce qui va ouvrir le fichier ensuite.

Crawlbase Crawling API

Quand vous collectez des données plutôt que de simplement les stocker, la question du format apparaît à l'étape de sortie. La Crawling API et la Crawling API de Crawlbase gèrent le rendu, la rotation des IPs et les blocages pour vous, puis renvoient des résultats propres que vous pouvez sauvegarder en JSON pour le code en aval ou aplatir en CSV pour un tableur, afin que vous choisissiez le format adapté à l'étape suivante plutôt que de vous débattre avec du HTML brut.

Quand utiliser JSON

JSON est le bon choix chaque fois que vos données sont structurées, hiérarchiques ou destinées à un programme plutôt qu'à une personne. Les cas les plus clairs :

  • Intégrations API. JSON est le standard pour les API précisément parce qu'il représente des données complexes et imbriquées. Un endpoint REST renvoyant un utilisateur avec sa liste de commandes est un cas naturel : les commandes s'imbriquent dans l'utilisateur, sans aplatissement requis.
  • Applications dynamiques. Les applications web et mobiles qui mettent à jour les données à la volée s'appuient sur JSON, aidées par la façon dont il se mappe proprement aux objets JavaScript. Une application de chat envoyant chaque message avec ses métadonnées (horodatage, statut de lecture) est un exemple typique.
  • Données hiérarchiques. Chaque fois que les enregistrements ont des relations parent-enfant ou un-à-plusieurs, JSON les stocke et les récupère sans contorsions.

Si vos données ont la moindre profondeur, ou si un autre logiciel est le consommateur, utilisez JSON par défaut. Pour en savoir plus sur le travail avec lui dans le code, voir notre guide sur l'analyse de données en Python et le workflow plus large dans le scraping d'un site web avec Python.

Quand utiliser CSV

CSV gagne quand les données sont plates, que le consommateur est un tableur ou un analyste, et que la taille ou la simplicité compte plus que la structure. Les cas les plus clairs :

  • Analyse de données. CSV se charge directement dans Excel, Google Sheets ou pandas, ce qui le rend idéal pour explorer rapidement des registres de ventes, des données démographiques clients ou des résultats d'enquêtes.
  • Exports de tableurs. Quand des données doivent être ouvertes ou partagées dans un logiciel tableur, CSV est le format d'import et d'export universel. Exporter une table de base de données pour une revue hors ligne est le cas canonique.
  • Échange simple de données. Quand les enregistrements n'ont pas d'imbrication et seulement des types basiques, CSV les déplace efficacement. Passer une liste d'abonnés email entre deux outils marketing en est un bon exemple.

Si les données s'inscrivent naturellement dans un tableau et qu'un humain ou un tableur est la prochaine étape, CSV est plus petit, plus simple et suffisant. Dès que vous vous retrouvez à encoder une liste dans une seule cellule, c'est le signal que vous avez dépassé CSV et que vous voulez JSON à la place.

Règle rapide

Les données s'imbriquent-elles, ou un programme les consommera-t-il ? Utilisez JSON. Sont-elles plates, et un tableur ou un analyste les ouvrira-t-il ? Utilisez CSV. La plupart des vraies décisions se résument à ces deux questions.

Comment convertir entre JSON et CSV

Vous vous engagez rarement dans un seul format pour toujours. Une API renvoie du JSON, mais une partie prenante le veut dans un tableur ; un export CSV doit devenir un payload API. La conversion entre les deux est une tâche de routine, et plusieurs outils la gèrent :

  • Bibliothèques Python. Les bibliothèques pandas, json et csv couvrent la plupart des conversions avec quelques lignes de code.
  • Convertisseurs en ligne. Des sites comme JSON2CSV gèrent les jeux de données plus petits rapidement sans code.
  • Logiciels tableurs. Excel et Google Sheets peuvent importer du JSON (avec un plugin ou un script) et exporter en CSV.
  • Scripts personnalisés. Écrire le vôtre en Python ou JavaScript vous donne un contrôle total sur la façon dont les champs imbriqués sont aplatis ou reconstruits.

La seule chose à surveiller est l'imbrication. Passer de JSON à CSV signifie aplatir : les objets imbriqués deviennent des noms de colonnes avec des points et les tableaux sont joints ou répartis, donc les données profondément imbriquées peuvent ne pas se mapper proprement à un tableau plat. Aller dans l'autre sens est sans perte, car les lignes plates s'inscrivent toujours dans du JSON. Voici l'aller-retour avec pandas :

python
import pandas as pd

json_data = [
    {"name": "John Doe", "age": 30},
    {"name": "Jane Smith", "age": 25},
]

# JSON to CSV: flatten, then write the table
df = pd.json_normalize(json_data)
df.to_csv("output.csv", index=False)

# CSV to JSON: read the table, dump records
df = pd.read_csv("output.csv")
df.to_json("output.json", orient="records", indent=4)

json_normalize est la pièce clé pour passer de JSON à CSV : il aplatit les clés imbriquées en colonnes pour qu'un enregistrement hiérarchique tienne dans un tableau plat. Pour des données avec des tableaux ou une imbrication profonde, vous devrez peut-être décider champ par champ s'il faut l'aplatir, le joindre dans une cellule ou le répartir sur des lignes.

Récapitulatif

Points clés

  • La structure est toute la différence. JSON imbrique ; CSV est plat. Tous les autres compromis découlent de ce seul fait.
  • JSON est pour les programmes et les données imbriquées. API, applications web et mobiles, et tout enregistrement avec hiérarchie ou types de données riches.
  • CSV est pour les tableurs et les données plates. Analyse, exports et échange simple où la taille et la simplicité l'emportent.
  • Les compromis de taille et de type sont réels. JSON répète les clés et préserve les types ; CSV est plus petit mais traite tout comme du texte.
  • La conversion est courante mais surveillez l'imbrication. Aplatir JSON en CSV peut perdre la structure ; CSV vers JSON est sans perte. Des outils comme pandas font l'aller-retour en quelques lignes.

Foire aux questions

JSON ou CSV est-il meilleur ?

Ni l'un ni l'autre n'est meilleur en général ; ils conviennent à des tâches différentes. JSON est meilleur pour les données imbriquées et l'échange programme-à-programme comme les API. CSV est meilleur pour les données plates et tabulaires destinées à un tableur ou un outil d'analyse. Faites correspondre le format à la structure des données et à ce qui les ouvrira ensuite.

Pourquoi JSON est-il plus grand que CSV ?

JSON répète chaque clé sur chaque enregistrement et ajoute des accolades, des crochets et des guillemets pour exprimer la structure. CSV écrit les noms de colonnes une seule fois dans un en-tête puis ne porte que des valeurs et des délimiteurs. Pour les grands jeux de données plats, cette surcharge rend JSON notablement plus grand sur disque que le CSV équivalent.

CSV peut-il stocker des données imbriquées ?

Pas nativement. CSV est strictement plat, donc les objets imbriqués et les tableaux doivent être aplatis en colonnes supplémentaires ou encodés dans une seule cellule en tant que chaîne (par exemple, une liste jointe avec des points-virgules). Si vos données ont une vraie hiérarchie, JSON la représente bien plus proprement.

Comment convertir JSON en CSV en Python ?

La façon la plus simple est pandas : chargez le JSON, appelez pd.json_normalize() pour aplatir les clés imbriquées en colonnes, puis écrivez le résultat avec df.to_csv(). Pour des imbrications complexes, vous devrez peut-être décider comment chaque champ imbriqué doit correspondre à des colonnes avant d'aplatir.

Quel format est plus rapide à analyser ?

CSV est généralement plus rapide et plus léger à analyser pour des données simples et plates, car il y a peu de structure à interpréter. L'analyse JSON fait plus de travail parce qu'elle reconstruit les objets imbriqués et les valeurs typées, mais ce travail est exactement ce que vous voulez quand les données sont hiérarchiques. La vitesse seule décide rarement ; c'est la structure qui le fait.

Crawlbase renvoie-t-il les données en JSON ou CSV ?

Les deux. La Crawling API et la Scraper API de Crawlbase renvoient des résultats analysés que vous pouvez sauvegarder en JSON pour le code en aval ou aplatir en CSV pour les tableurs et l'analyse, afin que vous choisissiez le format adapté à l'étape suivante de votre pipeline.

Commencer à construire

Crawlez n'importe quel site à grande échelle, sans combattre l'infrastructure.

Crawlbase gère les proxies, les empreintes et les CAPTCHA afin que votre équipe livre des pipelines de données au lieu de maintenir la plomberie de crawl. 1 000 requêtes gratuites, sans carte requise.

En libre-service · Sans appel commercial requis · Volumes de crawl entreprise disponibles