Dlaczego konwertować YAML na CSV?
Zbiory danych tworzone w YAML dla czytelności przez człowieka - katalogi produktów, listy kontaktów, dane testowe - często muszą trafić do arkusza kalkulacyjnego, bazy danych lub narzędzia raportującego. .CSV jest uniwersalnym formatem wymiany dla takich transferów, akceptowanym przez Excel, Google Sheets i praktycznie każdy importer baz danych.
Jak przekonwertować YAML na CSV
Wiersz poleceń - yq CLI
Uruchom yq -o=csv '.' input.yaml > output.csv po zainstalowaniu yq (darmowy, Windows / macOS / Linux) z github.com/mikefarah/yq.
Python - PyYAML + csv FREE
Zainstaluj PyYAML przez pip, a następnie załaduj za pomocą yaml.safe_load() i zapisz wiersze przy użyciu wbudowanego csv.DictWriter.
Python - pandas FREE
Po wykonaniu pip install pandas pyyaml, dokonaj konwersji w jednej linii: pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False).
O tych formatach
Plik .yaml (lub .yml) to ustrukturyzowane dane lub konfiguracja w formacie tekstowym YAML, używane w potokach CI/CD, Docker Compose, manifestach Kubernetes i konfiguracjach aplikacji.…
Otwórz szczegóły .YAML →Plik CSV przechowuje dane tabelaryczne jako zwykły tekst - jeden wiersz na linię, wartości rozdzielone przecinkami (lub średnikami w regionach europejskich). Otwiera go każdy arkusz…
Otwórz szczegóły .CSV →Jakość i na co uważać
- Tylko płaskie, jednolite sekwencje YAML konwertują się poprawnie - zagnieżdżone konfiguracje (Kubernetes, Docker Compose, potoki CI) generują bezużyteczne lub puste pliki CSV.
- Komentarze YAML i rozróżnienia typów (liczby całkowite, wartości logiczne) są po cichu tracone; wartości takie jak
yes,no,onluboffmogą być błędnie odczytane jako logiczne przez starsze parsery. - Kolejność kolumn zależy od kolejności kluczy w pierwszym rekordzie; jeśli potrzebujesz konkretnej kolejności, zdefiniuj
fieldnamesjawnie lub zmień kolejność kluczy w pliku źródłowym.
Najczęściej zadawane pytania
Mój YAML ma zagnieżdżone obiekty. Czy nadal mogę go przekonwertować?
Czy to działa z wielodokumentowymi plikami YAML rozdzielonymi przez `---`?
yq eval-all '[.]' input.yaml przed przekazaniem do flagi wyjściowej CSV; dokumenty nadal muszą być jednolitymi, płaskimi sekwencjami.