DevToolBoxGRATUIT
Blog

JSON vers CSV : 5 méthodes pour convertir JSON en CSV

11 min de lecturepar DevToolBox

Convertir JSON en CSV est l'une des transformations de donnees les plus courantes. Ce guide couvre cinq methodes : outils en ligne, Python pandas, JavaScript/Node.js, jq et Excel Power Query.

Convertissez JSON en CSV avec notre outil gratuit.

Pourquoi convertir JSON en CSV ?

JSON est le format standard pour les API web, tandis que CSV est le format tabulaire universel pour les tableurs et les bases de donnees.

Scenarios courants : export de donnees API, preparation d'imports SQL, generation de rapports, migration de donnees entre systemes.

Le principal defi est l'aplatissement des structures imbriquees.

Methode 1 : Convertir en ligne

Les outils en ligne sont la solution la plus rapide :

Essayez notre convertisseur JSON-CSV gratuit.

  1. Selectionnez JSON vers CSV.
  2. Collez vos donnees JSON.
  3. Cliquez sur Convertir.
  4. Telelechargez le CSV.

Ideal pour les conversions ponctuelles. Les donnees restent dans votre navigateur.

Methode 2 : Python pandas

Python avec pandas est la methode la plus populaire :

import pandas as pd
import json

# === Method 1: Flat JSON array ===
# Read JSON file directly into a DataFrame
df = pd.read_json('data.json')
df.to_csv('output.csv', index=False)

# === Method 2: Nested JSON with json_normalize ===
with open('data.json', 'r') as f:
    data = json.load(f)

# Flatten nested objects (e.g., user.address.city)
df = pd.json_normalize(data)
df.to_csv('output_flat.csv', index=False)

# === Method 3: Nested JSON with specific record_path ===
# For JSON like: {"results": [{"name": "A", "scores": [1,2]}]}
df = pd.json_normalize(
    data,
    record_path='items',           # path to the array
    meta=['id', 'name'],           # fields from parent
    meta_prefix='parent_',
    sep='.'                        # separator for nested keys
)
df.to_csv('output_nested.csv', index=False)

# === Method 4: Handle missing fields ===
df = pd.json_normalize(data)
df.fillna('', inplace=True)        # replace NaN with empty string
df.to_csv('output_clean.csv', index=False, encoding='utf-8-sig')

pd.json_normalize() aplatit automatiquement les objets imbriques.

Sans pandas, utilisez les modules csv et json de Python :

import json
import csv

# Read JSON
with open('data.json', 'r') as f:
    data = json.load(f)

# Write CSV using built-in modules
if isinstance(data, list) and len(data) > 0:
    keys = data[0].keys()  # column headers from first object

    with open('output.csv', 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=keys)
        writer.writeheader()
        writer.writerows(data)

    print(f"Converted {len(data)} rows to CSV")

L'approche standard est legere et fonctionne pour les JSON plats.

Methode 3 : JavaScript / Node.js

JavaScript est un choix naturel pour le JSON :

// === Browser: Convert JSON array to CSV string ===
function jsonToCsv(jsonData) {
  if (!Array.isArray(jsonData) || jsonData.length === 0) return '';

  const headers = Object.keys(jsonData[0]);
  const csvRows = [
    headers.join(','),  // header row
    ...jsonData.map(row =>
      headers.map(header => {
        const value = row[header] ?? '';
        // Escape quotes and wrap in quotes if needed
        const str = String(value);
        return str.includes(',') || str.includes('"') || str.includes('\n')
          ? `"${str.replace(/"/g, '""')}"`
          : str;
      }).join(',')
    )
  ];
  return csvRows.join('\n');
}

// Usage
const data = [
  { name: "Alice", age: 30, city: "NYC" },
  { name: "Bob", age: 25, city: "London" }
];
const csv = jsonToCsv(data);
console.log(csv);

// === Node.js: Read JSON file, write CSV file ===
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('data.json', 'utf-8'));
const csv = jsonToCsv(data);
fs.writeFileSync('output.csv', csv, 'utf-8');

// === Using json2csv package (recommended for production) ===
// npm install json2csv
const { parse } = require('json2csv');
const opts = {
  fields: ['name', 'age', 'address.city'],  // dot notation for nested
  flatten: true,
  defaultValue: ''
};
const csvOutput = parse(data, opts);
fs.writeFileSync('output.csv', csvOutput);

Pour la production, utilisez le package npm json2csv.

L'approche Node.js lit le JSON, extrait les en-tetes et ecrit le CSV.

Methode 4 : jq (ligne de commande)

jq est un processeur JSON en ligne de commande :

# === Basic: Flat JSON array to CSV ===
# Input: [{"name":"Alice","age":30},{"name":"Bob","age":25}]
jq -r '(.[0] | keys_unsorted) as $keys |
  ($keys | @csv),
  (.[] | [.[$keys[]]] | @csv)' data.json > output.csv

# === Select specific fields ===
jq -r '["name","age","city"],
  (.[] | [.name, .age, .city]) | @csv' data.json

# === Handle nested objects with dot notation ===
jq -r '["name","street","city"],
  (.[] | [.name, .address.street, .address.city]) | @csv' data.json

# === Handle arrays by joining elements ===
jq -r '["name","tags"],
  (.[] | [.name, (.tags | join(";"))]) | @csv' data.json

# === Pipe from curl (API response to CSV) ===
curl -s "https://api.example.com/users" | \
  jq -r '(.[0] | keys_unsorted) as $k |
  ($k | @csv), (.[] | [.[$k[]]] | @csv)' > users.csv

Le filtre @csv gere l'echappement CSV correct.

Pour des transformations complexes, jq supporte variables et conditions.

Methode 5 : Excel Power Query

Power Query offre une approche visuelle sans code :

  1. Donnees > Obtenir des donnees > A partir de JSON.
  2. Expandre les colonnes imbriquees.
  3. Enregistrer en CSV.

Power Query memorise les etapes de transformation.

Gestion du JSON imbrique

Le plus grand defi est l'aplatissement des structures imbriquees :

Notation par points : Les cles imbriquees sont jointes avec des points.

Gestion des tableaux : Joindre les elements, creer des lignes separees ou des colonnes numerotees.

Extraction selective : Extraire uniquement les champs necessaires.

Comparaison des methodes

MethodeIdeal pourImbricationInstallation
En ligneConversions rapidesAutoAucune
PythonData scienceExcellentpip install pandas
JavaScriptApps webBonnpm install json2csv
jqScripts shellManuelbrew install jq
ExcelUtilisateurs businessVisuelExcel

Conseils pour une conversion propre

Bonnes pratiques :

Inspectez la structure JSON d'abord.

Gerez les champs manquants.

Attention aux caracteres speciaux.

Choisissez le bon delimiteur.

Preservez les types de donnees.

Questions frequemment posees

Comment convertir JSON en CSV en ligne ?

Utilisez le convertisseur CSV-JSON de DevToolBox. Collez vos donnees JSON, cliquez sur Convertir et telechargez le CSV.

Excel peut-il ouvrir des fichiers JSON ?

Oui, avec Power Query : Donnees > Obtenir des donnees > A partir de JSON.

Comment convertir du JSON imbrique en CSV ?

Utilisez pandas json_normalize(), jq avec des filtres, ou un outil en ligne avec aplatissement automatique.

Quelle est la meilleure bibliotheque Python ?

pandas avec json_normalize() et read_json().

Peut-on convertir de gros fichiers JSON (1 Go+) ?

Oui, avec des approches streaming : ijson en Python, JSONStream en Node.js, jq --stream.

Convertir JSON en CSV est une competence fondamentale. Utilisez l'outil en ligne pour des conversions rapides, Python pour l'automatisation, jq pour le terminal.

Convertissez JSON en CSV avec notre outil gratuit.

Related Developer Tools and Guides

𝕏 Twitterin LinkedIn
Cet article vous a-t-il aidé ?

Restez informé

Recevez des astuces dev et les nouveaux outils chaque semaine.

Pas de spam. Désabonnez-vous à tout moment.

Essayez ces outils associés

📊CSV ↔ JSON Converter{ }JSON FormatterTSJSON to TypeScript📊JSON to Table

Articles connexes

Convertisseur CSV vers JSON : Guide Complet avec Exemples de Code

Convertisseur CSV vers JSON gratuit en ligne. Apprenez a convertir CSV en JSON avec des exemples en JavaScript, Python et Bash.

Formateur JSON & Validateur : Formatez et Validez JSON en Ligne

Formateur et validateur JSON gratuit en ligne. Embellissez JSON, trouvez les erreurs de syntaxe avec des exemples en JavaScript et Python.

JSON Parse Error: Unexpected Token — Comment le trouver et le corriger

Dépannez les erreurs de parsing JSON étape par étape. Causes, localisation et outils de validation.