Extraire des données de tableurs sans perdre la raison
CSV, JSON, Excel—convertir entre les formats sans tout casser.
Quelqu'un t'envoie un fichier Excel par email. Ton application a besoin de JSON. Ça devrait être simple.
Ça ne l'est jamais.
Le tableur a des cellules fusionnées. Ou des dates formatées bizarrement. Ou cette colonne où quelqu'un a tapé "N/A" dans ce qui devrait être un champ numérique. Chaque conversion devient une session de débogage.
Voici comment rendre ça moins douloureux.
CSV : Le traducteur universel
Presque toutes les applications de tableur exportent en CSV. Presque tous les systèmes peuvent lire du CSV. C'est le plus petit dénominateur commun des formats de données.
CSV c'est juste du texte : valeurs séparées par des virgules, lignes séparées par des sauts de ligne.
name,email,age
John,john@example.com,32
Jane,jane@example.com,28
Simple. Jusqu'à ce que ça ne le soit plus.
Le problème de la virgule. Et si une valeur contient une virgule ? "Smith, John" comme nom casse l'analyse. Solution : enveloppe les valeurs entre guillemets. Les bons outils CSV gèrent ça automatiquement. Les mauvais non.
Le problème du saut de ligne. Et si une valeur contient un saut de ligne ? Même solution : guillemets. Même mise en garde : tous les outils ne gèrent pas ça.
Le problème d'encodage. Excel sur Windows utilise par défaut un encodage de caractères différent d'Excel sur Mac. Les caractères spéciaux sont corrompus. Exporte en "CSV UTF-8" quand c'est possible.
JSON : Ce que les APIs veulent vraiment
Les applications web préfèrent JSON :
[
{"name": "John", "email": "john@example.com", "age": 32},
{"name": "Jane", "email": "jane@example.com", "age": 28}
]
La conversion de CSV vers JSON est généralement simple. La première ligne devient des noms de propriétés, les lignes suivantes deviennent des objets.
Les problèmes surviennent quand :
Les types sont perdus. CSV c'est que des chaînes. "32" pourrait être un nombre ou du texte. La conversion JSON doit deviner. La plupart des outils supposent : ressemble à un nombre, probablement un nombre.
Les nulls sont ambigus. Cellule vide = null ? Chaîne vide ? Omettre la propriété complètement ? Différents outils décident différemment.
Les tableaux n'existent pas. CSV est plat. Si ton JSON a besoin de tableaux imbriqués, tu fais du travail manuel.
Workflow courant
- Exporte depuis Excel/Sheets en CSV
- Ouvre dans un éditeur de texte, vérifie les problèmes évidents
- Convertis en JSON
- Valide la structure JSON
- Vérifie quelques enregistrements
La vérification compte. La conversion automatisée peut corrompre silencieusement les données. Une date devient un nombre. Un code postal perd son zéro initial. "O'Brien" devient "O'Brien". Vérifie avant de faire confiance.
Gérer les données bizarres
Dates. Excel stocke les dates comme des nombres en interne. L'export peut produire "44927" au lieu de "2023-01-15". Connais ton format de date avant de convertir.
Nombres comme texte. Codes postaux, numéros de téléphone, IDs—ceux-là ressemblent à des nombres mais ne devraient pas être traités comme des nombres. Les zéros initiaux comptent. Convertis en chaîne explicitement.
Unicode. Noms avec accents, données en scripts non latins. Assure-toi que ton pipeline gère UTF-8 de bout en bout.
Faire l'inverse
JSON vers CSV perd de l'information. Les objets imbriqués s'aplatissent maladroitement. Les tableaux deviennent... quoi, exactement ? Plusieurs lignes ? Chaînes concaténées ?
Pour du JSON plat avec une structure cohérente, la conversion fonctionne bien. Pour des données imbriquées complexes, tu prends des décisions sur comment l'aplatir. Documente ces décisions.
YAML et XML
YAML est le cousin hipster de JSON. Plus lisible, même structure de données, facile à convertir entre les deux.
XML est la version entreprise. Verbeux, largement supporté par les anciens systèmes, nécessite plus d'effort d'analyse.
Les deux se convertissent en JSON et inversement. Le principal casse-tête, ce sont les attributs vs éléments en XML—JSON n'a pas cette distinction.
La conversion de données consiste à savoir ce qui peut mal tourner et à le vérifier. Automatise la conversion, vérifie les résultats, et ne fais jamais confiance au fait que "ça marche juste."