Convertitore da CSV a YAML

YAML è ciò di cui sono fatti i moderni file di configurazione: manifesti Kubernetes, flussi di lavoro GitHub Actions, Docker Compose, playbook Ansible, fixture Rails. Questo convertitore legge un CSV e produce una sequenza YAML in cui ogni riga diventa una mappatura le cui chiavi provengono dall’intestazione. L’output utilizza un’indentazione di due spazi e una soglia in linea di 4 livelli, che corrisponde allo stile della maggior parte degli editor e dei linters.

Come il CSV diventa YAML

  1. 1

    Incolla il CSV

    Un campione è pre-caricato così puoi vedere la forma di output predefinita; sostituiscilo con i tuoi dati.

  2. 2

    Scegli il delimitatore

    Virgola per impostazione predefinita. Inserisci `\t` per input separati da tabulazioni o qualsiasi altro carattere singolo utilizzato dal tuo file.

  3. 3

    Le intestazioni diventano chiavi

    La riga 1 è trattata come intestazione. Le righe di dati diventano mappature sotto quelle chiavi nello stesso ordine delle colonne sorgente.

  4. 4

    YAML esportato in sicurezza

    L'output è generato dal componente YAML di Symfony, che cita i valori quando l'ambiguità con booleani, numeri o date altrimenti si verificherebbe.

Curiosità su YAML che dovresti conoscere prima di incollare l'output

YAML è famosamente permissivo in superficie e pieno di insidie sotto. Il dumper gestisce la maggior parte di esse, ma i tuoi dati devono comunque sopravvivere al round-tripping.

Il problema della Norvegia e amici

YAML 1.1 tratta un no, yes, on, off, true, false, y, n (e le loro forme maiuscole) come booleani. Ciò significa che una colonna di codice paese con NO per la Norvegia può silenziosamente trasformarsi in false.

Cellula sorgente Emesso come (non citato) Di solito inteso come
NO false Il paese Norvegia
ON true Lo stato Ontario
123 123 Numero o ID
0100 64 (ottale!) Un codice con zero iniziale

Il dumper cita automaticamente i valori rischiosi, ma se vedi tipi errati nel tuo output, passa a parser YAML 1.2 a valle o cita esplicitamente i valori che ti interessano.

Scelte di formattazione

  • Indentazione a due spazi. Standard per la maggior parte degli editor; i linter come yamllint lo usano per impostazione predefinita.
  • Soglia in linea 4. Strutture profondamente annidate vengono stampate su una riga sotto il 4° livello, sopra si espandono su più righe. Regola a valle se desideri blocchi più rigorosi.
  • Ancore e alias non vengono generati. Ogni riga è una nuova mappatura anche se le righe si ripetono.

Esempio di output

- name: Alice
  age: 30
- name: Bob
  age: 25

Quando scegliere YAML rispetto a JSON

  • Configurazioni modificate a mano, dove i commenti e le stringhe su più righe contano.
  • Manifesti Kubernetes, pipeline CI, playbook Ansible.
  • Qualsiasi contesto in cui le persone leggeranno il file tanto quanto le macchine.

Altrimenti JSON è più rigoroso e veloce da analizzare, preferiscilo per formati di rete e payload generati.

Domande frequenti

YAML 1.1 interpreta NO come booleano. Il convertitore cita i valori rischiosi, ma se un parser a valle continua a forzare i tipi, cita le celle problematiche prima di incollare l’output o passa a un parser YAML 1.2 che tratta questi come stringhe semplici.

Non con questo convertitore, ogni riga diventa una mappatura piatta. Per YAML annidato, costruisci un piccolo script attorno a una libreria YAML, o converti prima in JSON e modellalo in un editor JSON.

Le celle vengono analizzate con str_getcsv utilizzando il delimitatore scelto. I valori citati preservano i delimitatori e le citazioni incorporati nello stesso modo in cui farebbe un vero parser CSV.

Sì. Il CSV che incolli viene inviato al nostro server, perché l’analisi e la serializzazione YAML avvengono lì. Viene usato solo per produrre il risultato YAML e non viene salvato.

Strumenti correlati

Strumento disponibile in altre lingue