Hvorfor konvertere YAML til CSV?
Datasæt skrevet i YAML for menneskelig læsbarhed - produktkataloger, kontaktlister, testdata - skal ofte ind i et regneark, en database eller et rapporteringsværktøj. .CSV er det universelle udvekslingsformat til den overførsel, accepteret af Excel, Google Sheets og stort set alle database-importere.
Sådan konverterer du YAML til CSV
Kommandolinje - yq CLI
Kør yq -o=csv '.' input.yaml > output.csv efter installation af yq (gratis, Windows / macOS / Linux) fra github.com/mikefarah/yq.
Python - PyYAML + csv FREE
Installer PyYAML via pip, indlæs derefter med yaml.safe_load() og skriv rækker med den indbyggede csv.DictWriter.
Python - pandas FREE
Efter pip install pandas pyyaml, konverter på én linje: pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False).
Om disse formater
En .yaml (eller .yml) fil er struktureret data eller konfiguration i almindelig tekst skrevet i YAML, brugt til CI/CD-pipelines, Docker Compose, Kubernetes-manifester og app-konfiguration.…
Åbn .YAML detaljer →En CSV-fil gemmer tabeldata som almindelig tekst - én række pr. linje, værdier adskilt af kommaer (eller semikolon i europæiske lande). Alle regneark kan åbne den: Excel, Google Sheets,…
Åbn .CSV detaljer →Kvalitet & hvad man skal være opmærksom på
- Kun flade, ensartede YAML-sekvenser konverteres fejlfrit - indlejrede konfigurationer (Kubernetes, Docker Compose, CI-pipelines) producerer meningsløst eller tomt CSV-output.
- YAML-kommentarer og typedifferentiering (heltal, booleans) går lydløst tabt; værdier som
yes,no,onelleroffkan blive fejllæst som booleans af ældre parsere. - Kolonnerækkefølgen følger nøglerækkefølgen i den første post; hvis du har brug for en specifik rækkefølge, skal du definere
fieldnameseksplicit eller omarrangere nøglerne i kildefilen.
Ofte stillede spørgsmål
Min YAML har indlejrede objekter. Kan jeg stadig konvertere den?
Virker dette med multi-dokument YAML-filer adskilt af `---`?
yq eval-all '[.]' input.yaml, før du sender dem til CSV-output-flaget; dokumenterne skal stadig være ensartede flade sekvenser.