Öffnen Sie eine CSV-Datei oder fügen Sie sie ein – jede Zeile wird zu einem Eintrag einer YAML-Liste, mit den Spaltenüberschriften als Schlüssel. Standardmäßig bleibt jeder Wert Text, und Werte, die ein YAML-Parser sonst umdeuten würde – NO, yes, 0150, 2024-03-01, null –, werden in Anführungszeichen gesetzt, damit sie genau so zurückgelesen werden, wie sie geschrieben sind. Die Datei wird in Ihrem Browser umgewandelt und nie hochgeladen.
So wandeln Sie CSV in YAML um
- Wählen Sie Datei öffnen, ziehen Sie eine
.csv-,.tsv- oder.txt-Datei auf das Werkzeug, oder wählen Sie Einfügen. Sehen die Schlüssel falsch aus, prüfen Sie Trennzeichen und Codierung unter Importeinstellungen. - Wählen Sie die Werttypen und wie Leere Zellen geschrieben werden. Der YAML-Tab zeigt genau den Text, den der Download enthalten wird.
- Wählen Sie die Einrückung, dann Kopieren oder „YAML herunterladen“.
Das Ergebnis ist eine Sequenz auf oberster Ebene (Einträge der Form - key: value) – die Struktur, die für Fixtures, Seed-Daten und Datendateien statischer Websites üblich ist. Brauchen Sie stattdessen JSON, bietet CSV in JSON dieselben Typoptionen.
Optionen für die YAML-Ausgabe
| Alle Werte als Text behalten | Die Standardeinstellung. Jeder Wert ist eine YAML-Zeichenkette; Anführungszeichen werden nur dort gesetzt, wo ein einfacher Skalar als etwas anderes gelesen würde. |
|---|---|
| Zahlen und true/false erkennen | Eine Spalte wird nur dann zu YAML-Zahlen, wenn jeder nicht leere Wert eine einfache Zahl ohne führende Nullen und mit höchstens 15 signifikanten Stellen ist; Spalten mit true/false (beliebige Schreibweise) werden zu Wahrheitswerten. yes/no und Datumswerte bleiben Zeichenketten in Anführungszeichen. Zahlen werden in kanonischer Form geschrieben, aus 1.50 wird also 1.5. |
| Leere Zellen | null (Standard) schreibt key: null; Leerer Text "" schreibt key: ""; Schlüssel weglassen entfernt diesen Schlüssel aus der Zeile. |
| Einrückung | 2 Leerzeichen (Standard) oder 4 Leerzeichen für die Schlüssel unter jedem Listeneintrag. |
Wie mehrdeutige Werte in Anführungszeichen gesetzt werden
Die Ausgabe ist so geschrieben, dass sie in Parsern für YAML 1.2 genauso zurückgelesen wird wie in älteren Parsern für YAML 1.1, etwa PyYAML, die mehr Wörter als Wahrheitswerte und Zahlen behandeln.
- Länder- und Antwortcodes:
NO,yes,off,yundonstehen in Anführungszeichen, damit der Ländercode Norwegens nicht alsfalsegeladen wird. Das gilt auch für Schlüssel ("on": x). - Führende Nullen:
0150und08001stehen in Anführungszeichen; ohne sie liest YAML 1.1 diese Werte als Oktal- oder Dezimalzahlen und verliert die Null – wichtig etwa auch für deutsche Postleitzahlen wie 01067. - Datumswerte und Zahlen im Textmodus:
2019-04-01und12stehen in Anführungszeichen, damit sie nicht als Zeitstempel oder Ganzzahl geladen werden. - Null-ähnlicher Text: Eine Zelle mit
nulloder~wird in Anführungszeichen gesetzt, bleibt also der Text, den Sie geschrieben haben, und wird nicht mit einer leeren Zelle verwechselt. - Zeilenumbrüche innerhalb eines Werts werden zu einem Literal-Block
|-, und:oder#innerhalb von Text führt zu Anführungszeichen. Lange Zeilen werden nie umbrochen. - Spaltenüberschriften werden genau wie geschrieben als Schlüssel verwendet, einschließlich Leerzeichen und nicht lateinischer Schrift. Eine leere Spaltenüberschrift wird zu
Column 3, eine doppelte zuname (2).
Häufige Probleme bei der Umwandlung von CSV in YAML
- Eine Zahlenspalte bleibt trotz „Zahlen und true/false erkennen“ in Anführungszeichen. Mindestens ein Wert ist keine einfache Zahl, zum Beispiel
1,5,12 kgoder007. Finden Sie ihn im CSV-Viewer. - Eine Ja/Nein-Spalte wurde nicht zu Wahrheitswerten. Umgewandelt werden nur
trueundfalse, weilyes,noundonnur in YAML 1.1 Wahrheitswerte bedeuten. Brauchen Sie Wahrheitswerte, ersetzen Sie die Werte vorher in der CSV-Datei im CSV-Editor. - Schlüssel enthalten seltsame Zeichen wie ä oder é. Die Datei ist nicht in UTF-8 gespeichert. Wählen Sie ihre Codierung unter Importeinstellungen.
- Alles steht unter einem Schlüssel. Das Trennzeichen wurde falsch erkannt. Stellen Sie es unter Importeinstellungen ein.
Grenzen und Datenschutz
Dateien bis 25 MB, 100.000 Zeilen oder 2 Millionen Zellen öffnen mit Live-Vorschau der ersten 200 Zeilen. Größere Dateien werden als Datenstrom umgewandelt: Die Datei wird zweimal abschnittsweise gelesen (einmal, um Spalten und Typen zu ermitteln, einmal zum Schreiben), ein Hinweis besagt, dass der Download die ganze Datei umfasst, und Kopieren wird nicht angeboten. Eine einzelne Ausgabedatei ist auf 4 GB begrenzt.
Die Umwandlung läuft in einem Hintergrund-Worker in diesem Tab; die Seite bleibt bedienbar, und Abbrechen beendet den Vorgang. Die CSV-Datei wird nie an einen Server gesendet.
Beispiel: eine Kundenliste mit Ländercodes und Postleitzahlen
Eine Kundenliste mit Ländercodes, Postleitzahlen mit führenden Nullen, Ja/Nein-Kennzeichen, Datumswerten und leeren Zellen, umgewandelt mit den Standardeinstellungen (alles Text, leere Zellen als null). Mit Zahlen und true/false erkennen ändert sich nur orders, zu 12, 3 und 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"
Fragen und Antworten
Warum steht `NO` in Anführungszeichen?
In YAML 1.1 bedeuten NO, no, off und n ohne Anführungszeichen „falsch“. Die Anführungszeichen halten einen norwegischen Ländercode oder jede als no geschriebene Antwort in jedem Parser als Text.
Kann ich statt einer Liste ein einzelnes Mapping mit einer ID als Schlüssel erhalten?
Nein. Jede CSV-Zeile wird als ein Listeneintrag geschrieben, in der Reihenfolge der Datei. Eine Ausgabe mit ID-Schlüsseln ist hier nicht verfügbar.
Ist die Ausgabe gültiges YAML 1.2?
Ja. Die zusätzlichen Anführungszeichen, die YAML 1.1 braucht, sind auch in YAML 1.2 gültig; sie machen nur Werte ausdrücklich, die ohnehin schon Zeichenketten waren.