Pourquoi convertir YAML en CSV ?
Les ensembles de données rédigés en YAML pour la lisibilité humaine - catalogues de produits, listes de contacts, jeux de données de test - doivent souvent rejoindre un tableur, une base de données ou un outil de rapport. Le .CSV est le format d'échange universel pour ce transfert, accepté par Excel, Google Sheets et pratiquement tous les importateurs de bases de données.
Comment convertir YAML en CSV
Ligne de commande - yq CLI
Exécutez yq -o=csv '.' input.yaml > output.csv après avoir installé yq (gratuit, Windows / macOS / Linux) depuis github.com/mikefarah/yq.
Python - PyYAML + csv FREE
Installez PyYAML via pip, puis chargez avec yaml.safe_load() et écrivez les lignes avec le module intégré csv.DictWriter.
Python - pandas FREE
Après un pip install pandas pyyaml, convertissez en une ligne : pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False).
À propos de ces formats
Un fichier .yaml (ou .yml) est un fichier de données structurées ou de configuration en texte brut écrit en YAML, utilisé pour les pipelines CI/CD, Docker Compose, les manifestes Kubernetes…
Ouvrir les détails de .YAML →Un fichier CSV stocke des données tabulaires sous forme de texte brut - une ligne par enregistrement, les valeurs étant séparées par des virgules (ou des points-virgules dans les régions…
Ouvrir les détails de .CSV →Qualité et points de vigilance
- Seules les séquences YAML plates et uniformes se convertissent proprement - les configurations imbriquées (Kubernetes, Docker Compose, pipelines CI) produisent une sortie CSV vide ou sans signification.
- Les commentaires YAML et les distinctions de types (entiers, booléens) sont perdus silencieusement ; des valeurs comme « yes », « no », « on » ou « off » peuvent être mal interprétées comme des booléens par les anciens analyseurs.
- L'ordre des colonnes suit l'ordre des clés du premier enregistrement ; si vous avez besoin d'un ordre spécifique, définissez explicitement
fieldnamesou réorganisez les clés dans le fichier source.
Foire aux questions
Mon YAML contient des objets imbriqués. Puis-je quand même le convertir ?
Cela fonctionne-t-il avec les fichiers YAML multi-documents séparés par `---` ?
yq eval-all '[.]' input.yaml avant de passer l'option de sortie CSV ; les documents doivent toujours être des séquences plates uniformes.