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
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 sprechen wir über YAML. Am Ende des Artikels werden Sie in der Lage sein, sich durch YAML zu arbeiten und eine klare Einführung in YAML zu erhalten.
Was ist YAML und welchen Nutzen hat es für mich?
YAML ist ein Format zur Serialisierung von Daten, das für YAML ist keine Markup-Sprache 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 sowohl zwischen Groß- und Kleinschreibung als auch zwischen 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 erstellensind 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
GPA
: 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
Wir sehen uns das folgende Beispiel einer YAML an
---
MALE: FALSE
GPA: 3.61
ISSUES: NULL
NAME: "BIGYAN"
AGE: 16
Der erste Datentyp ist ein Boolean, der zwei Werte annehmen kann: true oder false. Der Wert von GPA ist eine Fließkommazahl. YAML unterstützt auch den Datentyp null, wie wir ihn für "Themen" 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, ich bin Ryan
aus Alabama und ich spiele gerne
Fußball
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
:
Äpfel
Banane
Guave
Die Verschachtelung ist für die Zuordnung von Skalar zu Liste erforderlich. 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 Mehrfachverschachtelung. Wir können so viele Mehrfachverschachtelungen vornehmen, wie wir wollen
Fächer:
Ingenieurwesen:
Maschinenbau:
Konstruktion und Herstellung
Automobil
Steuerung und Konstruktion
Bauwesen:
Hochbau
Wasserkraft
Kunst:
Mittelalter
Moderne
Malerei
YAML bietet außerdem 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 kleiner zu machen
Siehe das folgende Beispiel
<span class="hljs-attr">Einzelheiten:</span> <span class="hljs-meta">&Details</span>
<span class="hljs-attr">Name:</span> <span class="hljs-string">"John"</span>
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 mit dem Namen 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
import yaml
with open('details.yaml') as f:
data = yaml.load(f, Loader=yaml.FullLoader)
print(data)
Nachdem wir die Datei details.py ausgeführt haben, erhalten wir die folgende Ausgabe
$ python details.py
{'Name': "john", 'Alter': 18, 'Geschlecht': männlich}
import yaml
with open(r'feed.yaml') as file:
# Der FullLoader-Parameter sorgt für die Umwandlung von YAML
# skalaren Werten in das Python-Wörterbuchformat
fruits_list = yaml.load(file, Loader=yaml.FullLoader)
print(fruits_list)
Schreiben von YAML in Dateien in Python
import yaml
dict_file = [{'sports' : ['hockey', 'rugby', 'tennis', 'ping pong', 'football', 'badminton']},
{'countries' : ['Jamaica', 'England', 'Nepal', 'Netherlands', 'South Africa', 'Bolivia', 'Portugal']}]
with open(r'E:\data.yaml', 'w') as file: #Erstellen einer neuen YAML-Datei
data = yaml.dump(dict_file, file)
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 haben eine npm-Bibliothek für Node.js namens js-yaml. Lassen Sie uns mit der Installation des Moduls beginnen
npm install js-yaml
Anschließend verwenden wir das js-yaml-Modul
in unserer Datei
const yaml = require('js-yaml'); //initialize js-yaml
const fs = require('fs'); //initialize filestream
try {
const result = yaml.load(fs.readFileSync('beispiel.yml', 'utf8'));
console.log(result);
} catch (e) {
console.log(e); //catch exception
}
Schlussfolgerung
Unter moderne Programmier-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.