CSV-till-YAML-omvandlare

YAML är vad moderna konfigurationsfiler är gjorda av: Kubernetes-manifest, GitHub Actions-workflows, Docker Compose, Ansible-playbooks, Rails-fixturer. Den här omvandlaren läser en CSV och skapar en YAML-sekvens där varje rad blir en mappning med nycklar från rubrikraden. Utdatan använder indrag med två mellanslag och en inline-tröskel på 4 nivåer, vilket matchar stilen i de flesta editorer och linters.

Hur CSV blir YAML

  1. 1

    Klistra in CSV:en

    Ett exempel är förinläst så att du kan se standardutdataformen; ersätt det med din data.

  2. 2

    Välj avgränsaren

    Komma som standard. Ange `\t` för tabbseparerad indata eller vilket annat enskilt tecken din fil använder.

  3. 3

    Rubriker blir nycklar

    Rad 1 behandlas som rubriken. Datarader blir mappningar under dessa nycklar i samma ordning som källkolumnerna.

  4. 4

    YAML dumpas säkert

    Utdatan renderas av Symfony YAML-komponenten, som citerar värden när tvetydighet med booleaner, tal eller datum annars skulle uppstå.

YAML-egenheter du bör känna till innan du klistrar in utdatan

YAML är ökänt förlåtande på ytan och full av fällor under. Dumparen hanterar de flesta av dem, men din data måste fortfarande överleva en tur-och-retur-rundtur.

Norge-problemet och dess vänner

YAML 1.1 behandlar ett bart no, yes, on, off, true, false, y, n (och deras versalformer) som booleaner. Det betyder att en kolumn med landskoder med NO för Norge tyst kan bli false.

Källcell Matas ut som (ociterad) Vanligtvis avsett som
NO false Landet Norge
ON true Delstaten Ontario
123 123 Antingen tal eller ID
0100 64 (oktalt!) En kod med inledande nolla

Dumparen citerar riskabla värden automatiskt, men om du ser fel typer i din utdata, byt till YAML 1.2-tolkar nedströms eller citera uttryckligen värden du bryr dig om.

Formateringsval

  • Indrag med två mellanslag. Standard för de flesta editorer; linters som yamllint har detta som standard.
  • Inline-tröskel 4. Djupt nästlade strukturer skrivs ut på en rad under den 4:e nivån, över den expanderar de till flera rader. Justera nedströms om du vill ha striktare block.
  • Ankare och alias genereras inte. Varje rad är en ny mappning även om rader upprepas.

Exempel på utdata

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

När du ska välja YAML framför JSON

  • Handredigerade konfigurationer, där kommentarer och flerradiga strängar spelar roll.
  • Kubernetes-manifest, CI-pipelines, Ansible-playbooks.
  • Vilket sammanhang som helst där människor läser filen lika mycket som maskiner gör.

Annars är JSON striktare och snabbare att tolka, föredra den för wire-format och genererade payloads.

Vanliga frågor

YAML 1.1 tolkar bart NO som en boolean. Omvandlaren citerar riskabla värden, men om en nedströms tolk fortfarande tvingar typer, citera de problematiska cellerna innan du klistrar in utdatan eller byt till en YAML 1.2-tolk som behandlar dessa som vanliga strängar.

Inte med den här omvandlaren, varje rad blir en platt mappning. För nästlad YAML, bygg ett litet skript kring ett YAML-bibliotek, eller omvandla till JSON först och forma den i en JSON-editor.

Celler tolkas med str_getcsv med din valda avgränsare. Citerade värden bevarar inbäddade avgränsare och citattecken på samma sätt som de skulle i en riktig CSV-tolk.

Ja. Den CSV du klistrar in skickas till vår server, eftersom tolkning och YAML-serialisering sker där. Den används bara för att skapa YAML-resultatet och sparas inte.

Relaterade verktyg

Verktyget finns på andra språk