Zum Inhalt springen

Was ist eine YAML – Datei?

  • Daten

Die Abkürzung YAML steht je nach Quelle entweder für „Yet Another Markup Language“ oder für „YAML Ain’t Markup Language“. Die Sprache wird zur Serialisierung von Daten, also zur Umwandlung von strukturierten Daten in eine Sequenz. Wobei der erste Name nicht wirklich gültig ist, da es sich um keine Markup Language handelt.

Die sogenannten Markup Languages, wie HTML oder XML, nutzen nämlich Markierungen, um textuelle Informationen zu strukturieren. Bei HTML beispielsweise gibt es ein fest definiertes Set an Markierungen, welche in spitzen Klammern (<>) geschrieben sind. Dazu gehören beispielsweise Überschriften (<h1>, <h2>, <h3>, …) oder Paragraphen (<p>), welche genutzt werden, um die Struktur einer Website aufzubauen.

Wie funktioniert die Syntax von YAML?

Dieses Dateiformat nutzt Funktionen aus verschiedensten Programmiersprachen, wie Perl, C oder HTML. Gleichzeitig ist es ein sogenanntes Superset von JSON, was bedeutet, dass JSON Dateien ohne große Probleme in YAML genutzt werden können.

Eine YAML Datei beginnt mit drei Bindestrichen („—„) zur Anzeige, dass die Datei startet. Sie kann entweder die Struktur einer Liste oder einer Map haben. In unserem Beispiel zeigen wir eine Map mit festen Schlüssel-Wert-Paaren, die vergleichbar mit Python Dictionaries sind. Jeder Schlüssel darf dabei nur ein einziges Mal vorkommen und die Reihenfolge der Paare ist nicht vorgegeben:

---
name: Boris Miller
telephone: 0152 48912348
age: 28

Welche Datentypen unterstützt das Dateiformat?

In einer „Yet Another Markup Language“ Datei können die gängigen Datentypen hinterlegt und abgespeichert werden:

  • Boolean (True/False)
  • Integer (Ganzzahlen, z.B. 5 oder 2304)
  • Floating Point (Dezimalzahlen, z.B. 2.48 oder 1983.4335)
  • String (Text)
  • Null-Werte

Wofür nutzt man YAML?

Die Erstellung von Konfigurationsdateien zählt zu den häufigsten Einsatzgebieten von „Yet Another Markup Language“ Dateien. Darin werden beispielsweise zentral die Links, Nutzernamen oder IP-Adressen abgelegt, welche eine Software benötigt. Damit man bei einer Änderung nicht den gesamten Code durchsuchen muss, liegen diese gesammelt in einer Datei ab.

Die „Yet Another Markup Language“ wird, wie bereits erwähnt, auch zur Datenserialisierung genutzt, um sie beispielsweise über das Internet senden zu können. Neben YAML wird dazu häufig auch JSON oder XML eingesetzt.

Ein weiterer, wichtiger Anwendungsfall dieser Dateitypen sind die Übertragung von Daten zwischen verschiedenen Programmen über Schnittstellen.

YAML und JSON im Vergleich

Diese beiden Dateitypen sind sich in vielen Punkten relativ ähnlich und können deshalb meist auch in denselben Anwendungen genutzt werden. Beide zählen zu den sogenannten Textdateien, die Informationen in natürlicher Sprache abspeichern und dadurch für den Menschen lesbar sind.

Seit den neueren Versionen ist „Yet Another Markup Language“ auch ein Superset von JSON Dateien. Das bedeutet, dass JSON Dateien ohne weiteres in YAML Dateien zum Einsatz kommen können und keine Fehler hervorrufen.

Der einzige, wirkliche Unterschied besteht darin, dass JSON sehr großen Wert auf eine einfache Anwendung legt und dafür auch bereit ist, die menschliche Lesbarkeit zu verschlechtern.

Wie schreibt und verarbeitet man YAML Dateien in Python?

Mithilfe von Python kann man sehr einfach diese Dateien schreiben und öffnen. Es gibt sogar eine eigene Bibliothek zur Verarbeitung:

# Import modules
import yaml as yml

# open the example file
with open('details.yml') as f:

    data = yml.load(f, Loader=yml.FullLoader)
    print(data)

Out:
{"name": "Boris Miller", "telephone": "0152 48912348", "age": 28}

Mithilfe der Bibliothek wird unsere eingelesene Beispieldatei direkt in ein Python Dictionary umgewandelt und steht dann zur Weiterverarbeitung zur Verfügung. Genauso einfach können auch Python Dictionaries in „Yet Another Markup Language“ Dateien abgespeichert werden:

dict_file = [
{'cars' : ['A6', 'A180', 'M3', 'A4', 'X5']},
{'brands' : ['Audi', 'Mercedes', 'BMW', 'Audi', 'BMW']}
]

# Create new file and dump data into it
with open(data.yml', 'w') as file:  
    data = yml.dump(dict_file, file)

Das solltest Du mitnehmen

  • YAML ist die Abkürzung für „Yet Another Markup Language“ und wird hauptsächlich zur Datenserialisierung eingesetzt.
  • Es ist in der Anwendung und vielen anderen Eigenschaften sehr ähnlich mit JSON und damit auch kompatibel.
  • Neben der Datenserialisierung wird YAML auch bei Konfigurationsdateien von Software eingesetzt.

Andere Beiträge zum Thema YAML

  • Weitere Informationen zu „Yet Another Markup Language“ findest Du auf der offiziellen Website.
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner