Waarom YAML naar CSV converteren?
Datasets die in YAML zijn geschreven voor menselijke leesbaarheid - productcatalogi, contactlijsten, testfixtures - moeten vaak in een spreadsheet, een database of een rapportagetool terechtkomen. .CSV is het universele uitwisselingsformaat voor die overdracht, geaccepteerd door Excel, Google Sheets en vrijwel elke database-importer.
Hoe YAML naar CSV te converteren
Opdrachtregel - yq CLI
Voer yq -o=csv '.' input.yaml > output.csv uit na het installeren van yq (gratis, Windows / macOS / Linux) via github.com/mikefarah/yq.
Python - PyYAML + csv FREE
Installeer PyYAML via pip, laad het vervolgens met yaml.safe_load() en schrijf rijen met de ingebouwde csv.DictWriter.
Python - pandas FREE
Na pip install pandas pyyaml, converteert u in één regel: pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False).
Over deze formaten
Een .yaml (of .yml) bestand is platte tekst met gestructureerde gegevens of configuratie geschreven in YAML, gebruikt voor CI/CD-pipelines, Docker Compose, Kubernetes-manifesten en…
Open .YAML details →Een CSV-bestand slaat tabelgegevens op als platte tekst - één rij per regel, waarden gescheiden door komma's (of puntkomma's in Europese regio's). Elk spreadsheetprogramma opent het: Excel,…
Open .CSV details →Kwaliteit & waar op te letten
- Alleen platte, uniforme YAML-reeksen converteren probleemloos - geneste configuraties (Kubernetes, Docker Compose, CI-pipelines) produceren betekenisloze of lege CSV-output.
- YAML-commentaren en type-onderscheidingen (integers, booleans) gaan stilletjes verloren; waarden zoals
yes,no,on, ofoffkunnen door oudere parsers verkeerd worden gelezen als booleans. - De kolomvolgorde volgt de sleutelvolgorde van het eerste record; als u een specifieke volgorde nodig heeft, definieer dan expliciet
fieldnamesof wijzig de volgorde van de sleutels in het bronbestand.
Veelgestelde vragen
Mijn YAML heeft geneste objecten. Kan ik het nog steeds converteren?
Werkt dit met YAML-bestanden die uit meerdere documenten bestaan, gescheiden door `---`?
yq eval-all '[.]' input.yaml voordat u ze doorgeeft aan de CSV-outputvlag; de documenten moeten nog steeds uniforme platte reeksen zijn.