Varför konvertera YAML till CSV?
Datamängder skapade i YAML för mänsklig läsbarhet - produktkataloger, kontaktlistor, testdata - behöver ofta nå ett kalkylblad, en databas eller ett rapporteringsverktyg. .CSV är det universella utbytesformatet för den överföringen, accepterat av Excel, Google Sheets och praktiskt taget alla databasimportörer.
Hur man konverterar YAML till CSV
Kommandorad - yq CLI
Kör yq -o=csv '.' input.yaml > output.csv efter att ha installerat yq (gratis, Windows / macOS / Linux) från github.com/mikefarah/yq.
Python - PyYAML + csv FREE
Installera PyYAML via pip, ladda sedan med yaml.safe_load() och skriv rader med den inbyggda csv.DictWriter.
Python - pandas FREE
Efter pip install pandas pyyaml, konvertera på en rad: pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False).
Om dessa format
En .yaml (eller .yml) fil är strukturerad data i klartext eller konfiguration skriven i YAML, som används för CI/CD-pipelines, Docker Compose, Kubernetes-manifest och app-konfiguration.…
Öppna detaljer för .YAML →En CSV-fil lagrar tabelldata som vanlig text - en rad per linje, värden separerade med kommatecken (eller semikolon i europeiska regioner). Alla kalkylprogram kan öppna den: Excel, Google…
Öppna detaljer för .CSV →Kvalitet & vad man bör tänka på
- Endast platta, enhetliga YAML-sekvenser konverteras korrekt - nästlade konfigurationer (Kubernetes, Docker Compose, CI-pipelines) ger meningslösa eller tomma CSV-utdata.
- YAML-kommentarer och typdistinktioner (heltal, booleaner) går förlorade; värden som
yes,no,onelleroffkan feltolkas som booleaner av äldre tolkare. - Kolumnordningen följer nyckelordningen i den första posten; om du behöver en specifik ordning, definiera
fieldnamesexplicit eller sortera om nycklar i källfilen.
Vanliga frågor
Min YAML har nästlade objekt. Kan jag fortfarande konvertera den?
Fungerar detta med YAML-filer som innehåller flera dokument separerade med `---`?
yq eval-all '[.]' input.yaml innan du skickar dem till CSV-flaggan; dokumenten måste fortfarande vara enhetliga platta sekvenser.