Perché convertire YAML in CSV?
I set di dati creati in YAML per la leggibilità umana - cataloghi prodotti, liste di contatti, fixture di test - spesso devono raggiungere un foglio di calcolo, un database o uno strumento di reporting. .CSV è il formato di scambio universale per tale trasferimento, accettato da Excel, Google Sheets e praticamente ogni importatore di database.
Come convertire YAML in CSV
Riga di comando - yq CLI
Esegui yq -o=csv '.' input.yaml > output.csv dopo aver installato yq (gratuito, Windows / macOS / Linux) da github.com/mikefarah/yq.
Python - PyYAML + csv FREE
Installa PyYAML tramite pip, quindi carica con yaml.safe_load() e scrivi le righe con il modulo integrato csv.DictWriter.
Python - pandas FREE
Dopo pip install pandas pyyaml, converti in una riga: pd.DataFrame(yaml.safe_load(open('input.yaml'))).to_csv('output.csv', index=False).
Informazioni su questi formati
Un file .yaml (o .yml) è un file di dati strutturati o configurazione in formato testo semplice scritto in YAML, utilizzato per pipeline CI/CD, Docker Compose, manifest di Kubernetes e…
Apri dettagli .YAML →Un file CSV memorizza dati tabulari come testo normale - una riga per riga, valori separati da virgole (o punti e virgola nelle impostazioni locali europee). Qualsiasi foglio di calcolo lo…
Apri dettagli .CSV →Qualità e a cosa prestare attenzione
- Solo le sequenze YAML piatte e uniformi si convertono correttamente - le configurazioni nidificate (Kubernetes, Docker Compose, pipeline CI) producono un output CSV privo di significato o vuoto.
- I commenti YAML e le distinzioni di tipo (interi, booleani) vengono persi silenziosamente; valori come «yes», «no», «on» o «off» potrebbero essere letti erroneamente come booleani da parser più vecchi.
- L'ordine delle colonne segue l'ordine delle chiavi del primo record; se hai bisogno di un ordine specifico, definisci esplicitamente
fieldnameso riordina le chiavi nel file sorgente.
Domande frequenti
Il mio YAML ha oggetti nidificati. Posso comunque convertirlo?
Funziona con i file YAML multi-documento separati da `---`?
yq eval-all '[.]' input.yaml prima di passare al flag di output CSV; i documenti devono comunque essere sequenze piatte uniformi.