La plupart des fichiers CSV arrivent désordonnés. Ils contiennent des cellules vides où devraient être des valeurs nulles, des citations incohérentes et aucune schéma imposé. Convertir cela en JSON propre n’est pas une modification de format — c’est un problème de nettoyage des données.
Ce guide explique quand passer à JSON, ce qui se passe lors de la conversion et comment gérer correctement les cas limites — soit avec une solution rapide Convertisseur CSV en JSON ou un script personnalisé.
CSV vs JSON : Le véritable échange
Le CSV est compact, largement lisible et facilement importable dans des feuilles de calcul. Pour les données tabulaires planes — les exports provenant de bases de données, de pipelines d'analyse ou de dossiers financiers — il reste le bon format. Si vos données s'organisent en lignes et colonnes sans hiérarchie, le CSV est suffisant.
Le JSON devient la meilleure option quand :
- Vos données présentent une hiérarchie ou une structure (un utilisateur avec plusieurs adresses)
- Vous avez besoin d'information explicite sur le type (le nombre 42 contre la chaîne « 42 »)
- Vous alimentez des données vers une API ou une application JavaScript
- Vous souhaitez que les valeurs nulles soient explicitement représentées, et non simplement une cellule vide
L'échange n'est pas sur lequel format est « meilleur ». C'est sur le fait que la structure de vos données dépasse ce que le CSV peut représenter.
Les problèmes créés par le CSV
Avant de convertir, il faut comprendre ce qui est défectueux.
Aucun standard pour les valeurs nulles. Une cellule vide dans un CSV peut signifier une valeur nulle, zéro, une chaîne vide ou des données manquantes. Il n'est pas possible de le savoir à partir du fichier. Une colonne vide peut signifier « inconnu » dans un système et « 0 » dans un autre. age Citations incohérentes.
Les valeurs contenant des virgules doivent être encadrées par des guillemets ( ), mais pas tous les exportateurs suivent la spécification. Vous trouverez des virgules non encadrées, des guillemets mal placés ou des cellules qui ouvrent un guillemet mais ne le ferment jamais."Portland, OR"Problèmes d'encodage.
Les fichiers CSV arrivent souvent avec un BOM UTF-8, des caractères Windows-1252 ou un mélange des deux. Des guillemets intelligents, des traits de ponctuation ou des caractères accentués dérangent les parsers attendant un ASCII propre. Aucune information sur le type.
Chaque valeur dans le CSV est une chaîne. Le nombre 42, la valeur booléenne true et la date 2024-01-01 sont tous stockés comme texte. Convertir cela en JSON donne un document rempli de chaînes où vous attendiez des nombres et des valeurs booléennes. Comment convertir correctement
Les mécanismes sont simples : chaque ligne CSV devient un objet JSON, avec les en-têtes de colonne comme clés. Le problème réside dans tout ce qui se produit avant et après cette transformation.
Coercion des types.
Une colonne remplie de nombres devrait devenir des nombres JSON. Une colonne avec des valeurs « vrai » / « faux » devrait devenir des valeurs booléennes. Mais une colonne de code postal qui semble un nombre (90210) devrait rester une chaîne — convertir cela détruit les zéros initiaux. Gestion des valeurs nulles.
Les cellules vides nécessitent une décision : convertir en , ignorer la clé entière ou utiliser une valeur par défaut. Choisissez une option et restez cohérent. nullColonnes manquantes.
Si une ligne a moins de colonnes que les en-têtes, votre analyseur doit gérer cela de manière appropriée — soit en complétant avec ou en ignorant la ligne. null Voici un extrait de code Python qui gère les trois cas :
l'encodage supprime le BOM s'il est présent.
import csv
import json
def coerce_value(value):
if value == '':
return None
try:
return int(value)
except ValueError:
pass
try:
return float(value)
except ValueError:
pass
if value.lower() in ('true', 'false'):
return value.lower() == 'true'
return value
def csv_to_json(csv_path, json_path):
with open(csv_path, encoding='utf-8-sig') as f: # utf-8-sig strips BOM
reader = csv.DictReader(f)
rows = []
for row in reader:
rows.append({k: coerce_value(v) for k, v in row.items() if k})
with open(json_path, 'w', encoding='utf-8') as f:
json.dump(rows, f, indent=2, ensure_ascii=False)
csv_to_json('input.csv', 'output.json')
Le utf-8-sig essaie la conversion numérique dans l'ordre : entier d'abord, puis flottant, puis booléen, puis chaîne. Le coerce_value filtre supprime les colonnes fantômes provenant des virgules en fin de ligne dans l'en-tête. if k JSON imbriqué à partir d'un CSV plat
Le CSV ne peut pas représenter l'hiérarchie directement, mais il existe deux stratégies courantes.
Notation des clés avec point.
Certains exports CSV utilisent des en-têtes comme . Une étape de post-traitement découpe sur le point et construit des objets imbriqués : address.city et address.zipGroupage et hiérarchisation.
def unflatten(row):
result = {}
for key, value in row.items():
parts = key.split('.')
d = result
for part in parts[:-1]:
d = d.setdefault(part, {})
d[parts[-1]] = value
return result
Si plusieurs lignes représentent des enfants d'un même parent (des lignes de commande sous une commande), regroupez par l'identifiant du parent et construisez l'array imbriqué après la conversion. Aucune de ces approches ne doit être intégrée dans une étape de conversion rapide — si vous faites cela, vous écrivez un script de transformation, et non simplement un changement de format. Quel outil utiliser
Pour un CSV propre et bien structuré qui ne nécessite qu'un changement de format : utilisez un outil en ligne
. Collez, convertissez, terminé. Aucune configuration, aucun dépendant. Convertisseur CSV en JSONPour un CSV avec des problèmes connus — problèmes d'encodage, citations incohérentes, coercions de type ou valeurs nulles — écrivez un script. L'extrait de code Python ci-dessus gère la plupart des cas réels. pandas est une option aussi (
), mais il fait ses propres décisions de coercions qui peuvent ne pas correspondre à ce que vous souhaitez.pd.read_csv() + df.to_json()Pour des commandes en ligne dans le terminal,
Miller ) est le chemin le plus rapide : (mlrMiller gère correctement les citations, l'encodage et les champs manquants sans avoir besoin d'écrire de code. C'est le chemin le plus rapide pour passer d'un CSV problématique à un JSON propre sans écrire de code.
mlr --icsv --ojson cat input.csv > output.json
Les cas limites du CSV et la manière de les gérer
Problème CSV
| Ce que JSON obtient | Comment le gérer | Cellule vide |
|---|---|---|
| ou clé manquante | null Décider à l'avance ; rester cohérent dans toutes les lignes | Chaîne numérique semblable (code postal) |
| Perte des zéros initiaux si coercée | Conserver comme chaîne ; coercer uniquement les colonnes que vous contrôlez | Virgule en fin d'en-tête |
| Clé vide | sur chaque ligne "" Filtrer avec | lors de la construction des objets if k BOM UTF-8 au début du fichier |
| Erreur de lecture ou | dans la première clé Ouvrir avec | Ligne avec un guillemet à l'intérieur d'une cellule encoding='utf-8-sig' |
| Désactive les parsers naïfs ligne par ligne | Utiliser un vrai parser CSV, pas | dans une colonne booléenne split(',') |
"true"/"false" chaîne, pas | "true" booléen true Coercion explicite après comparaison en minuscules | Le changement de format est facile. Les données ne le sont pas. |
Un convertisseur CSV en JSON gère la partie structurelle en quelques secondes. Ce qui prend du temps, c'est de comprendre ce qui se trouve réellement dans votre fichier — les valeurs nulles, les particularités d'encodage, les colonnes qui semblent des nombres mais ne le sont pas. Écrivez explicitement les coercions de type et la gestion des valeurs nulles plutôt que de faire confiance à un outil pour deviner, et vous éviterez les bugs qui surviennent à cause de données fausses et silencieuses.
CSV en JSON : Quand convertir et comment garder vos données propres 2
Installez nos extensions
Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide
恵 Le Tableau de Bord Est Arrivé !
Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !
Outils essentiels
Tout voir Nouveautés
Tout voirMise à jour: Notre dernier outil a été ajouté le 14 mai 2026
