Open of plak een CSV-bestand en elke rij wordt één item in een YAML-lijst, met de kolomnamen als sleutels. Standaard blijft elke waarde tekst, en waarden die een YAML-parser anders zou interpreteren, zoals NO, yes, 0150, 2024-03-01 of null, krijgen aanhalingstekens, zodat ze precies zo terugkomen als ze zijn geschreven. Het bestand wordt in je browser omgezet en nooit geüpload.
Zo zet je CSV om naar YAML
- Kies Bestand openen, sleep een
.csv-,.tsv- of.txt-bestand naar de tool, of kies Plakken. Zien de sleutels er niet goed uit, controleer dan het scheidingsteken en de codering onder Importinstellingen. - Kies de Waardetypen en hoe Lege cellen worden geschreven. Het tabblad YAML toont precies de tekst die in de download komt.
- Kies de Inspringing en daarna Kopiëren of ‘YAML downloaden’.
Het resultaat is een reeks op het hoogste niveau (items in de vorm - key: value): de vorm die wordt gebruikt voor fixtures, seeddata en databestanden van statische sites. Heb je liever JSON, dan heeft CSV naar JSON dezelfde opties voor typen.
Wat elke optie doet
| Alle waarden als tekst bewaren | De standaard. Elke waarde is een YAML-string; aanhalingstekens komen er alleen bij waar een kale scalar als iets anders zou worden gelezen. |
|---|---|
| Getallen en true/false herkennen | Een kolom wordt alleen YAML-getallen als elke niet-lege waarde een gewoon getal is zonder voorloopnullen en met maximaal 15 significante cijfers. Kolommen met true/false (in welke schrijfwijze ook) worden booleans. yes/no en datums blijven strings tussen aanhalingstekens. Getallen worden in canonieke vorm geschreven, dus 1.50 wordt 1.5. |
| Lege cellen | null (de standaard) schrijft key: null; ‘Lege tekst ""’ schrijft key: ""; Sleutel weglaten laat die sleutel weg uit de rij. |
| Inspringing | 2 spaties (standaard) of 4 spaties voor de sleutels onder elk lijstitem. |
Welke dubbelzinnige waarden aanhalingstekens krijgen
Het resultaat wordt zo geschreven dat het hetzelfde terugleest in YAML 1.2-parsers én in oudere YAML 1.1-parsers zoals PyYAML, die meer woorden als boolean en getal zien.
- Landcodes en antwoorden:
NO,yes,off,yenonkrijgen aanhalingstekens, zodat de landcode van Noorwegen niet alsfalsewordt geladen. Dat geldt ook voor sleutels ("on": x). - Voorloopnullen:
0150en08001krijgen aanhalingstekens. Zonder aanhalingstekens leest YAML 1.1 ze als octaal of decimaal getal en valt de nul weg. - Datums en getallen in de tekstmodus:
2019-04-01en12krijgen aanhalingstekens, zodat ze niet als tijdstempel of geheel getal worden geladen. - Tekst die op null lijkt: een cel met
nullof~krijgt aanhalingstekens, zodat het de tekst blijft die je hebt geschreven en niet wordt verward met een lege cel. - Regeleinden binnen een waarde worden een letterlijk blok
|-, en:of#binnen tekst krijgt aanhalingstekens. Lange regels worden nooit afgebroken. - Kolomnamen worden precies zo als sleutels gebruikt, inclusief spaties en niet-Latijnse schriften. Een lege kolomnaam wordt
Column 3en een dubbelename (2).
Problemen oplossen
- Een kolom met getallen houdt aanhalingstekens, ook met ‘Getallen en true/false herkennen’. Minstens één waarde is geen gewoon getal, bijvoorbeeld
1,5,12 kgof007. Zoek hem op in de CSV-viewer. - Een kolom met yes/no is geen boolean geworden. Alleen
trueenfalseworden omgezet, omdatyes,noenonalleen in YAML 1.1 booleans zijn. Heb je booleans nodig, vervang de waarden dan eerst in de CSV met de CSV-editor. - Sleutels bevatten vreemde tekens zoals é. Het bestand is geen UTF-8. Kies de codering onder Importinstellingen.
- Alles staat onder één sleutel. Het scheidingsteken is verkeerd geraden; stel het in onder Importinstellingen.
Grenzen en privacy
Bestanden tot 25 MB, 100.000 rijen of 2 miljoen cellen openen met een live voorbeeld van de eerste 200 rijen. Grotere bestanden worden in delen omgezet: het bestand wordt twee keer in stukken gelezen (eerst om de kolommen en hun typen te meten, dan om te schrijven), een melding zegt dat de download het hele bestand bevat, en Kopiëren wordt niet aangeboden. Eén uitvoerbestand is maximaal 4 GB.
Het omzetten gebeurt in een achtergrondproces in dit tabblad, zodat de pagina blijft reageren; met Annuleren stop je het. Het CSV-bestand wordt nooit naar een server gestuurd.
Voorbeeld
Een klantenlijst met landcodes, postcodes met voorloopnullen, ja/nee-vlaggen, datums en lege cellen, omgezet met de standaardinstellingen (alles tekst, lege cellen als null). Met Getallen en true/false herkennen verandert alleen orders, in 12, 3 en 7.
country,code,postcode,vat_registered,since,orders Norway,NO,0150,yes,2019-04-01,12 Spain,ES,08001,no,2021-11-15,3 United States,US,02134,,,7
- country: Norway code: "NO" postcode: "0150" vat_registered: "yes" since: "2019-04-01" orders: "12" - country: Spain code: ES postcode: "08001" vat_registered: "no" since: "2021-11-15" orders: "3" - country: United States code: US postcode: "02134" vat_registered: null since: null orders: "7"
Vragen en antwoorden
Waarom staat `NO` tussen aanhalingstekens?
In YAML 1.1 betekenen NO, no, off en n zonder aanhalingstekens false. Met aanhalingstekens blijft een Noorse landcode, of elk antwoord dat als no is geschreven, in elke parser tekst.
Kan ik één mapping krijgen met een id als sleutel in plaats van een lijst?
Nee. Elke CSV-rij wordt geschreven als één lijstitem, in de volgorde van het bestand. Uitvoer met sleutels is hier niet beschikbaar.
Is het resultaat geldige YAML 1.2?
Ja. De extra aanhalingstekens die voor YAML 1.1 nodig zijn, zijn ook geldige YAML 1.2; ze maken alleen expliciet dat waarden die al strings waren strings zijn.