Wenn Sie ein Entwickler sind, der APIs schreibt, sind Sie wahrscheinlich schon mit YAML in Berührung gekommen, auch wenn Ihr primäres Serialisierungstool vielleicht JSON ist.

YAML hat eine eigene, benutzerfreundliche Syntax und ist eine praktische Sprache, die Sie zu Ihrem Entwicklungsarsenal hinzufügen können.

Lassen Sie uns die Grundlagen von YAML kennenlernen.

Serialisierung von Daten

Immer wenn Sie eine Datenstruktur oder ein Objekt über Computernetzwerke, z.B. das Internet, versenden möchten, müssen Sie es in ein spezielles Format umwandeln, um es lesen und speichern zu können. Dieser Vorgang wird allgemein als Serialisierung bezeichnet und ist im Internet von enormer Bedeutung. Ein gängiges Anwendungsbeispiel für die Serialisierung ist das Lesen von Daten aus Datenbanken und deren Übertragung über das Internet.

Zu den Serialisierungsformaten gehören JSON, YAML und XML.

In diesem Artikel werde ich auf YAML eingehen. Am Ende des Artikels werden Sie in der Lage sein, sich durch YAML zu arbeiten und eine klare Vorstellung von YAML zu haben.

Was ist YAML?

YAML ist ein Format zur Serialisierung von Daten, das für YAML ain’t Markup language steht.

Der Hauptvorteil der Verwendung von YAML ist die Lesbarkeit und Beschreibbarkeit. Wenn Sie eine Konfigurationsdatei haben, die für Menschen leichter zu lesen sein soll, ist es besser, YAML zu verwenden. YAML ist kein vollständiger Ersatz für JSON, denn auch JSON und XML haben ihre Berechtigung; dennoch ist es nützlich, YAML zu lernen.

Ein weiterer Vorteil von YAML ist die Unterstützung verschiedener Datentypen wie Cases, Arrays, Dictionaries, Listen und Skalare. Es bietet gute Unterstützung für die gängigsten Sprachen wie JavaScript, Python, Ruby, Java usw.

YAML unterstützt nur Leerzeichen und unterscheidet zwischen Groß- und Kleinschreibung sowie Leerzeichen. Tabulatoren werden nicht durchgängig akzeptiert. Eine YAML-Datei hat die Erweiterung .yaml.

Grundlegende YAML-Syntax

Jede YAML-Datei beginnt mit ---, was den Anfang einer YAML-Datei kennzeichnet.

Wenn wir eine API erstellen, sind wir an einer Funktion von YAML interessiert, die als Mapping bezeichnet wird.

Die folgenden Beispiele zeigen ein Beispiel für das Mapping in YAML.

---
name: James
junge: ja
NOTENDURCHSCHNITT: 3.41

Die Mapping-Syntax lautet Schlüssel: Wert. (Beachten Sie das Leerzeichen, es ist in YAML sehr wichtig, im Gegensatz zu JSON oder XML.

YAML unterstützt auch Datentypen wie Zeichen, Strings, Ganzzahlen, Fließkommazahlen und Sammlungen wie Arrays und Listen, die aus Basisdatentypen aufgebaut sind.

Datentypen in YAML

Sehen wir uns das folgende Beispiel einer YAML an:

---

MALE: FALSE

NOTENDURCHSCHNITT: 3.61

AUSGABEN: NULL

NAME: "HARRY"

ALTER: 16

Der erste Datentyp ist ein Boolescher, der zwei Werte annehmen kann: wahr oder falsch. Der Wert von GPA ist ein Fließkommawert. YAML unterstützt auch den Datentyp null, wie wir ihn für “Issues” haben. Der Wert von “Name” ist eine Zeichenkette, die in doppelte oder einfache Anführungszeichen gesetzt werden muss. YAML unterstützt auch mehrzeilige Strings und mehrzeilige Strings als einen einzigen, um die Lesbarkeit zu verbessern.

Mehrzeilige und einzeilige Strings

---

Über: >

 Hallo, hier ist Ryan

 Aus Alabama und ich möchte

 Fußball spielen.

Mit dem Symbol <i>></i> können Sie eine einzeilige Zeichenfolge in mehrere Zeilen schreiben. Der Satz ist eigentlich eine einzeilige Beschreibung, obwohl wir mehrere Zeilen haben.

Wir können auch mehrzeilige Zeichenfolgen haben, wenn wir das Symbol | wie erlaubt verwenden:

Über: |

 Dies ist eine mehrzeilige Zeichenfolge

 Und wird zeilenweise gedruckt.

Liste

Listen sind in YAML sehr wichtig.

Ein Beispiel für eine Liste finden Sie unten.

---

- apfel

- banane

- mango

Das Mapping von Skalaren auf Listen wird unten gezeigt, was für die meisten Konfigurationsdateien sehr wichtig ist.

---

Früchte:

 Apfel

 Banane

 Guave 

Verschachtelung ist erforderlich, um Skalare auf Listen abzubilden. Wir können auch mehrere verschachtelte Listen haben, wie im folgenden Beispiel gezeigt.

Automobile:

 Auto:

     Hyundai

     Volkswagen

     Ford

Hier sind Autos in Autos verschachtelt, und Hyundai ist in Autos verschachtelt. Dies ist ein Beispiel für eine mehrfache Verschachtelung. Wir können so viele Mehrfachverschachtelungen haben, wie wir wollen.

Subjekte:

     Technik:

       Maschinenbau:

         Konstruktion und Fertigung

         Automobile

         Steuerung und Design

       Bauingenieurwesen:

         Bauingenieurwesen

         Wasserkraft

       Kunst:

         Mittelalter

         Modern

         Malerei

YAML bietet auch die Symbole & und * als Anker und Verweise auf den Anker, um Doppelungen zu vermeiden. Sie sind in Konfigurationsdateien in Frameworks wie Ruby on Rails unerlässlich, um die YAML-Datei zu verkleinern.

Siehe das folgende Beispiel.

details: &Details
    name: "John"
    alter: 18
beruf: Ingenieur

<< : * details

was gleichbedeutend ist mit:

beruf: Ingenieur

name: "John"

alter: 18

YAML in Python

Python unterstützt YAML, einschließlich einiger Module wie ruamel und pyyaml. Beginnen Sie mit der Installation von pyyaml

pip install pyyaml

Für das Tutorial erstellen Sie eine Datei mit dem Namen details.yaml

name: "john"

alter:18

geschlecht: männlich

Erstellen Sie eine weitere Datei namens feed.yaml mit dem folgenden Inhalt:

sport:

 fußball
 basketball
 kricket
 baseball

---
länder:
 Brasilien
 Litauen
 Australien
 USA

Beginnen wir mit dem Lesen der Datei details.yaml

importieren yaml

mit open('details.yaml') as f:
    
    daten = yaml.load(f, Loader=yaml.FullLoader)
    print(daten)

Nachdem wir die Datei details.py ausgeführt haben, erhalten wir die folgende Ausgabe

 $ python details.py
{'Name': "john", 'Alter': 18, 'Geschlecht': männlich}
importieren yaml

with open(r'feed.yaml') as file:
    # Der Parameter FullLoader übernimmt die Konvertierung von YAML
    # skalaren Werten in das Python-Dictionary-Format
    fruits_list = yaml.load(datei, Loader=yaml.FullLoader)

    print(fruits_list)

Schreiben von YAML in Dateien in Python

importieren Sie yaml

dict_file = [{'sports' : ['hockey', 'rugby', 'tennis', 'ping pong', 'football', 'badminton']},
{'countries' : ['Jamaika', 'England', 'Nepal', 'Niederlande', 'Südafrika', 'Bolivien', 'Portugal']}]

with open(r'E:\data.yaml', 'w') as file: #Erstellen Sie eine neue yaml-Datei 
    daten = yaml.dump(dict_file, Datei)

YAML-Implementierung in Node.js

Node.js ist eine serverseitige Verarbeitungssprache, und die Serialisierung von Daten ist für den Entwicklungsprozess von enormer Bedeutung.

Betrachten wir für unser Tutorial die folgende Datei example.yaml:

name:John

alter:18

Hobbys:

 Hobby1:Fußball

 Hobby2:BasketBall

 Hobby3:Hockey

Beruf:

-Systemadministrator

-Programmierer

Wir verfügen über eine npm-Bibliothek für Node.js namens js-yaml. Lassen Sie uns mit der Installation des Moduls beginnen, indem wir

npm install js-yaml

Anschließend verwenden wir das js-yaml-Modul in unserer Datei.

const yaml = require('js-yaml'); //initialisieren Sie js-yaml
const fs = require('fs'); //initialisieren Sie filestream

try {
  const result = yaml.load(fs.readFileSync('beispiel.yml', 'utf8'));
  console.log(result);
} catch (e) {
  console.log(e); //catch Ausnahme
}

Letzte Worte

In der modernen Programmierung, in Frameworks und Anwendungen, in denen Daten gespeichert oder verteilt werden, wird YAML immer häufiger in Konfigurationsdateien verwendet. YAML zielt auf viele der gleichen Kommunikationsanwendungen ab wie Extensible Markup Language (XML), hat aber eine minimale Syntax, die sich bewusst von XML unterscheidet.

YAML-Dateien können für feste Datenstrukturen mit Hilfe von Druckbefehlen erstellt werden, die sowohl die Daten als auch die besondere Ausgestaltung von YAML schreiben. Für die Ausgabe verschiedener oder komplexer, hierarchischer Daten ist jedoch ein spezieller YAML-Emitter vorzuziehen. Ebenso lassen sich mit regulären Ausdrücken einfache YAML-Dateien (z.B. Schlüssel-Wert-Paare) leicht parsen.