Convertisseur CSV ⇔ JSON Lines (JSONL)
Convertissez entre des fichiers CSV et le format JSON Lines (JSONL, un objet JSON par ligne). Choisissez le délimiteur ; les lignes aux clés différentes sont fusionnées automatiquement. La conversion se fait entièrement dans le navigateur, rien n'est envoyé à un serveur.
Correspondance entre les lignes CSV et les lignes JSONL
| Ligne d'en-tête CSV + ligne de données | name,age,cityAlice,30,Tokyo |
|---|---|
| JSONL résultant (un objet par ligne) | {"name": "Alice", "age": "30", "city": "Tokyo"} |
Chaque ligne de données du CSV devient un objet JSON dont les clés proviennent de la ligne d'en-tête, produit sous forme d'une ligne JSONL. Dans l'autre sens (JSONL → CSV), la ligne d'en-tête est l'union de toutes les clés vues sur l'ensemble des lignes, et les lignes auxquelles il manque une clé donnée restent vides dans cette colonne.
Qu'est-ce que la conversion entre CSV et JSON Lines
Convertir entre CSV et JSON Lines (JSONL) consiste à transformer des données tabulaires CSV en un format comportant un objet JSON par ligne, ou inversement. Cet outil analyse le CSV avec un analyseur conforme à la RFC 4180, si bien qu'un CSV complexe comportant des virgules ou des sauts de ligne à l'intérieur de cellules entre guillemets est lu correctement.
Les deux sens sont pris en charge : lors de la conversion de CSV vers JSONL, les noms de colonnes de la ligne d'en-tête servent de clés, tandis que lors de la conversion de JSONL vers CSV, la ligne d'en-tête est construite à partir de l'union de toutes les clés de toutes les lignes. Les colonnes s'alignant automatiquement même lorsque les lignes comportent un nombre de clés différent, l'outil est tout aussi utile pour préparer des jeux de données de machine learning que pour mettre en ordre des fichiers de logs.
Comment convertir entre CSV et JSON Lines
- Choisissez le sens de la conversion Utilisez les onglets pour choisir « CSV → JSONL » ou « JSONL → CSV » selon le sens voulu.
- Saisissez vos données Collez dans la zone de texte le CSV ou le JSON Lines à convertir. Sans données sous la main, cliquez sur « Charger un exemple » pour en voir un.
- Choisissez le délimiteur Sélectionnez si le côté CSV utilise des virgules ou des tabulations. Choisissez tabulation si vous travaillez avec un fichier TSV.
- Vérifiez le résultat de la conversion Le résultat apparaît automatiquement au fur et à mesure de la saisie, et le nombre de lignes s'affiche dans le champ « Lignes ».
- Copiez le résultat Utilisez le bouton « Copier » pour placer le résultat converti dans le presse-papiers et le coller dans un autre outil ou système.
Astuces pour en tirer le meilleur parti
- Lors de la conversion de JSONL vers CSV, les lignes n'ont pas besoin d'avoir les mêmes clés ni le même ordre : l'outil construit la ligne d'en-tête à partir de l'union de toutes les clés rencontrées et aligne les colonnes automatiquement.
- Les cellules d'en-tête vides ou dupliquées sont automatiquement remplacées par des clés du type col{n} ou nom_2, afin qu'aucune valeur ne soit perdue ou écrasée.
- Les valeurs numériques, booléennes ou les objets/tableaux imbriqués sont écrits sous forme de texte dans la cellule CSV, si bien que le résultat s'ouvre sans problème dans Excel ou tout tableur.
- Combinez cet outil avec « CSV → JSON » et « JSONL ⇔ tableau JSON » pour circuler librement entre CSV, tableaux JSON et JSON Lines.
- Le côté CSV utilise un analyseur conforme à la RFC 4180 qui gère correctement les virgules et sauts de ligne à l'intérieur des cellules entre guillemets, si bien que les exports Excel complexes se convertissent sans erreur.
Quand la conversion entre CSV et JSON Lines est utile
Préparer des jeux de données de machine learning
Des données d'entraînement organisées dans un tableur peuvent être converties en JSONL et utilisées directement comme jeu de données de fine-tuning.
Consulter des fichiers de logs dans un tableur
Convertir des logs d'application exportés en JSONL vers CSV permet de les ouvrir dans Excel ou un tableur pour filtrer et agréger les données.
Fusionner des données aux clés incohérentes
Même des données JSONL dont chaque ligne comporte un nombre de champs différent voient leurs colonnes alignées automatiquement lors de la conversion en CSV, sans nettoyage manuel.
Préparer des données pour une API ou une base de données
Des données CSV peuvent être converties en JSONL et alimenter directement un processus d'import qui lit un enregistrement par ligne.
Termes utilisés ici
- CSV
- Abréviation de Comma-Separated Values, un format texte brut représentant des données tabulaires en séparant les valeurs par des virgules.
- JSON Lines (JSONL)
- Un format qui écrit un objet JSON par ligne. Chaque ligne pouvant être lue et écrite indépendamment, il convient à la diffusion de grandes quantités de données.
- RFC 4180
- La spécification qui définit le format courant d'un fichier CSV. Elle précise comment les virgules, les sauts de ligne et les guillemets sont traités à l'intérieur des cellules entre guillemets doubles.
- Union des clés
- L'ensemble complet de toutes les clés (noms de colonnes) apparaissant sur plusieurs lignes, sans qu'aucune ne soit omise. Lors de la conversion de JSONL vers CSV, cette union devient la ligne d'en-tête.
- Diffusion en flux (streaming)
- Traiter les données un enregistrement (une ligne) à la fois, en séquence, plutôt que de tout charger en mémoire d'un coup. JSON Lines est un format bien adapté à ce mode de traitement.
Questions fréquentes
Anecdote — Pourquoi JSON Lines est devenu la langue commune du machine learning et du traitement des logs
L'un des principaux moteurs de l'adoption de JSON Lines (JSONL) est la distribution de jeux de données pour le machine learning. Les données de fine-tuning pour les grands modèles de langage se composent souvent de millions de paires entrée-sortie, et les regrouper dans un seul tableau JSON signifie qu'il faut charger et analyser le fichier entier en mémoire avant de pouvoir lire quoi que ce soit. JSON Lines contourne ce problème en traitant chaque ligne comme un enregistrement autonome, ce qui permet de diffuser et de traiter des jeux de données énormes de manière incrémentale.
Les outils de traitement de logs ont adopté JSONL pour une raison similaire. Des plateformes comme Elasticsearch et Logstash sont conçues pour ingérer les événements un par un au fur et à mesure de leur production, et un format où chaque ligne se suffit à elle-même s'accorde bien plus naturellement à ce modèle d'ajout et d'analyse qu'un tableau JSON, qui n'a de sens qu'en tant que structure unique et indivisible.
Le CSV, quant à lui, reste fermement ancré partout où les données doivent être transmises entre équipes ou vérifiées d'un coup d'œil dans un tableur. En reliant directement ces deux formats très différents, cet outil permet d'injecter des données CSV directement dans un pipeline de machine learning, ou d'ouvrir un fichier de log JSONL dans Excel, en une seule étape.