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.