Comment convertir JSON en CSV : méthodes, outils et exemples de code
Comment convertir JSON en CSV : méthodes rapides
La conversion de JSON en CSV est l'une des tâches de transformation de données les plus courantes. Que vous ayez besoin d'analyser des données API dans Excel, d'exporter des enregistrements de base de données pour un rapport ou de préparer des données d'apprentissage pour le machine learning, voici les méthodes les plus rapides :
Méthode | Idéal pour | Niveau de compétence |
|---|---|---|
Conversions rapides et ponctuelles | Aucune programmation requise | |
Python (pandas) | Grands ensembles de données, automatisation | Python de base |
JavaScript (json2csv) | Projets Node.js, pipelines API | JavaScript de base |
Ligne de commande (jq + miller) | Scripts shell, transformations rapides | Familiarité avec la CLI |
Excel Power Query | Utilisateurs non techniques | Aucune programmation requise |
Méthode 1 : Convertisseur en ligne gratuit (sans code)
La façon la plus rapide de convertir JSON en CSV est d'utiliser le Convertisseur JSON en CSV gratuit de Qodex :
Collez vos données JSON ou téléchargez un fichier .json
L'outil détecte automatiquement la structure et aplatit les objets imbriqués
Téléchargez le fichier CSV résultant
Cette méthode convient le mieux aux conversions rapides et ponctuelles de petits à moyens ensembles de données. Aucun compte requis, aucune donnée stockée sur les serveurs.
Pour la conversion inverse, utilisez le Convertisseur CSV en JSON. Pour une comparaison plus approfondie de ces formats, consultez notre comparaison CSV vs JSON.
Méthode 2 : Python avec pandas
La bibliothèque pandas de Python est le choix le plus populaire pour la conversion programmatique de JSON en CSV, notamment pour les grands ensembles de données ou les pipelines automatisés :
import pandas as pd import json# Tableau JSON plat simple data = [ {"name": "Alice", "email": "alice@example.com", "age": 30}, {"name": "Bob", "email": "bob@example.com", "age": 25} ] df = pd.DataFrame(data) df.to_csv("output.csv", index=False)
# Depuis un fichier JSON df = pd.read_json("data.json") df.to_csv("output.csv", index=False)
# JSON imbriqué, aplatir d'abord with open("nested.json") as f: data = json.load(f) df = pd.json_normalize(data) # Aplatit les objets imbriqués df.to_csv("output.csv", index=False)
Fonction clé : pd.json_normalize() gère le JSON imbriqué en l'aplatissant en colonnes avec notation par points (ex. address.city, address.zip). C'est essentiel pour convertir les réponses API du monde réel qui sont rarement plates.
Méthode 3 : JavaScript avec json2csv
Pour les projets Node.js ou les pipelines de données construits en JavaScript :
const { Parser } = require('json2csv');const data = [ { name: "Alice", email: "alice@example.com", age: 30 }, { name: "Bob", email: "bob@example.com", age: 25 } ];
// Conversion de base const parser = new Parser(); const csv = parser.parse(data); console.log(csv);
// Avec des données imbriquées, spécifier l'aplatissement const { Parser } = require('json2csv'); const opts = { fields: ['name', 'address.city', 'address.zip'], unwind: ['orders'], // Développer les tableaux en plusieurs lignes }; const parser = new Parser(opts); const csv = parser.parse(nestedData);
La bibliothèque json2csv gère la plupart des structures JSON courantes, notamment les objets imbriqués, les tableaux et les types mixtes. Installez-la avec npm install json2csv.
Méthode 4 : Ligne de commande
Pour les scripts shell et les lignes de commande rapides, combinez jq (processeur JSON) avec des outils standard :
# Utiliser jq pour convertir un tableau JSON plat en CSV cat data.json | jq -r ' (.[0] | keys_unsorted) as $keys | ($keys | @csv), (.[] | [.[$keys[]]] | @csv) ' > output.csv# Utiliser miller (mlr), conçu spécifiquement pour la conversion de format mlr --json2csv cat data.json > output.csv
# Utiliser Python en une ligne python3 -c "import pandas as pd; pd.read_json('data.json').to_csv('output.csv', index=False)"
Miller (mlr) est particulièrement utile pour la conversion de format de données. Installez-le avec brew install miller (macOS) ou apt install miller (Ubuntu).
Gestion du JSON imbriqué
Le JSON du monde réel provenant des points de terminaison API est rarement plat. Voici comment gérer les structures imbriquées courantes :
Objets imbriqués vers colonnes avec notation par points
// JSON d'entrée {"name": "Alice", "address": {"city": "NYC", "zip": "10001"}}
// CSV de sortie name,address.city,address.zip Alice,NYC,10001
Tableaux vers plusieurs lignes ou chaînes délimitées
// JSON d'entrée {"name": "Alice", "tags": ["admin", "editor"]}// Option A : Plusieurs lignes (développement) name,tags Alice,admin Alice,editor
// Option B : Chaîne délimitée name,tags Alice,"admin;editor"
Imbrication mixte : Aplatir + Développer
Pour un JSON profondément imbriqué, utilisez une approche en deux étapes : aplatissez d'abord les objets avec json_normalize(), puis développez les tableaux en lignes séparées. Cela préserve toutes les données tout en créant une structure tabulaire valide.
Comprendre les différences structurelles entre ces formats vous aide à choisir la bonne approche de conversion. Consultez notre comparaison CSV vs JSON pour une analyse approfondie des compromis.
Foire aux questions
Puis-je convertir du JSON imbriqué en CSV ?
Oui, mais le JSON imbriqué nécessite un aplatissement. Les objets imbriqués sont généralement convertis en noms de colonnes avec notation par points (ex. address.city), et les tableaux peuvent être développés en plusieurs lignes ou joints en chaînes délimitées. pandas.json_normalize() de Python et la bibliothèque json2csv de Node.js gèrent automatiquement la plupart des modèles d'imbrication. Pour des conversions rapides, le Convertisseur JSON en CSV de Qodex gère automatiquement les structures imbriquées.
Quelles données sont perdues lors de la conversion de JSON en CSV ?
Le CSV ne peut pas représenter les types de données (tout devient du texte), les structures imbriquées (aplaties en notation par points ou en plusieurs lignes), les distinctions entre null et chaîne vide, ni les valeurs booléennes (qui deviennent les chaînes "true"/"false"). Si vous avez besoin de préserver ces distinctions, envisagez de conserver une copie JSON aux côtés du CSV, ou d'utiliser un format qui prend en charge les types comme Parquet ou NDJSON.
Comment convertir un grand fichier JSON en CSV ?
Pour les grands fichiers (100 Mo et plus), évitez de charger l'intégralité du fichier en mémoire. Utilisez des approches en flux continu : la bibliothèque ijson de Python pour l'analyse incrémentielle, ou traitez le NDJSON (un objet JSON par ligne) avec une lecture ligne par ligne. Pour les très grands ensembles de données, des outils comme Apache Spark ou DuckDB peuvent convertir efficacement JSON en CSV avec une utilisation minimale de la mémoire.
Comment convertir des réponses JSON d'API en CSV ?
La plupart des réponses API renvoient des tableaux JSON d'objets, qui correspondent directement à des lignes CSV. Utilisez la bibliothèque requests de Python pour récupérer les données et pandas pour convertir : pd.DataFrame(response.json()).to_csv('output.csv'). Pour les APIs paginées, collectez toutes les pages dans une liste avant de convertir. Pour les flux de travail de test API, Qodex.ai peut exporter les résultats des tests directement en CSV.
Quel est le meilleur convertisseur JSON en CSV ?
Pour des conversions rapides sans code : le Convertisseur JSON en CSV de Qodex (gratuit, sans compte nécessaire). Pour une conversion programmatique en Python : pandas avec json_normalize(). Pour JavaScript/Node.js : le package npm json2csv. Pour la ligne de commande : miller (mlr --json2csv). Choisissez en fonction de votre cas d'utilisation : ponctuel ou automatisé, petits ou grands fichiers, JSON plat ou imbriqué.
Puis-je convertir du CSV en JSON ?
Oui. La conversion inverse est simple pour les données plates : chaque ligne CSV devient un objet JSON avec les en-têtes de colonnes comme clés. Utilisez le Convertisseur CSV en JSON de Qodex pour des conversions rapides, ou pandas.read_csv('data.csv').to_json() en Python. Notez que la conversion CSV en JSON produit toujours des objets plats ; si vous avez besoin de structures imbriquées, vous devrez écrire une logique de transformation personnalisée.
Discover, Test, & Secure your APIs 10x Faster than before
Auto-discover every endpoint, generate functional & security tests (OWASP Top 10), auto-heal as code changes, and run in CI/CD - no code needed.
Related Blogs





