Wenn Sie als Entwickler APIs schreiben, sind Sie wahrscheinlich auf YAML gestoßen, obwohl Ihr primäres Serialisierungstool JSON sein könnte.
YAML hat seine eigene benutzerfreundliche Syntax und ist eine praktische Sprache, die Sie Ihrem Entwicklungsarsenal hinzufügen können.
Lassen Sie uns die Grundlagen von YAML lernen.
Inhaltsverzeichnis
Datenserialisierung
Wann immer Sie eine Datenstruktur oder ein Objekt über Computernetzwerke senden möchten, sagen wir das Internet, müssen Sie es in ein spezielles Format umwandeln, um es lesen und speichern zu können. Der Vorgang wird allgemein als Serialisierung bezeichnet und ist im Web von enormer Bedeutung. Ein häufiges Anwendungsbeispiel für die Serialisierung ist das Lesen von Daten aus Datenbanken und deren Übertragung über das Internet.
Einige Serialisierungsformate umfassen JSON, YAML, XML.
In diesem Artikel sprechen wir über YAML, und am Ende des Artikels können Sie sich durch YAM arbeiten und erhalten eine klare Einführung in YAML.
Was ist YAML und welche Vorteile habe ich davon?
YAML ist ein Datenserialisierungsformat, 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 lesbar sein muss, ist es besser, YAML zu verwenden. YAML ist kein vollständiger Ersatz für JSON, da auch JSON und XML ihre Berechtigung haben; Trotzdem ist es nützlich, YAML zu lernen.
Ein weiterer Vorteil von YAML ist die Unterstützung verschiedener Datentypen wie Fälle, Arrays, Wörterbücher, 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 überall akzeptiert. Eine YAML-Datei hat die Erweiterung .yaml.
Grundlegende YAML-Syntax
Jedes YAML beginnt mit — was den Anfang einer YAML-Datei bezeichnet.
Beim Erstellen einer API interessieren wir uns für eine von YAML bereitgestellte Funktion, die als Mapping bekannt ist.
Die folgenden Beispiele zeigen das Beispiel der Zuordnung in YAML.
--- name: James boy: yes GPA: 3.41
Die Zuordnungssyntax ist Schlüssel: Wert. (Beachten Sie das Leerzeichen, es ist sehr wichtig in YAML, im Gegensatz zu JSON oder XML.
YAML unterstützt auch Datentypen wie Zeichen, Zeichenfolgen, Ganzzahlen, Gleitkommawerte und Sammlungen wie Arrays, Listen, die aus grundlegenden Datentypen aufgebaut sind.
Datentypen in YAML
Sehen wir uns das Beispiel einer YAML-Datei unten an:
--- MALE: FALSE GPA: 3.61 ISSUES: NULL NAME: “BIGYAN” AGE: 16
Der erste Datentyp ist ein boolescher Wert, der zwei Werte haben kann: wahr oder falsch. Der Wert von GPA ist ein Fließkommawert. YAML unterstützt auch den Null-Datentyp, wie wir ihn für „Issues“ haben. Der Wert von „Name“ ist eine Zeichenfolge, die in doppelte oder einfache Anführungszeichen gesetzt werden muss. YAML unterstützt auch mehrzeilige Zeichenfolgen und mehrzeilige Zeichenfolgen als einzelne für die Lesbarkeit.
Mehrzeilige und einzeilige Zeichenfolgen
--- About: > Hello this is Ryan From Alabama and I like to Play soccer.
Mit dem Symbol > können Sie eine einzelne Zeichenfolge in mehrere Zeilen schreiben. Der Satz ist eigentlich eine einzeilige Beschreibung, obwohl wir mehrere Zeilen haben.
Wir können auch mehrere Zeilenzeichenfolgen haben, wenn wir das | verwenden Symbol wie erlaubt:
About: | This is a multiline string And will be printed line wise.
Aufführen
Listen sind in YAML sehr wichtig.
Ein Beispiel für die Liste ist unten angegeben.
--- - apple - banana - mango
Die Zuordnung von Skalar zu Listen wird unten gezeigt, was für die meisten Konfigurationsdateien sehr wichtig ist.
--- Fruits: Apples Banana Guava
Verschachtelung ist für die Zuordnung von Skalar zu Liste erforderlich. Wir können auch mehrere verschachtelte Listen haben, wie im folgenden Beispiel gezeigt.
Automobiles: Car: Hyundai Volkswagen Ford
Hier sind Autos in Autos verschachtelt, und Hyundai ist in Autos verschachtelt. Dies ist ein Beispiel für Mehrfachverschachtelung. Wir können so viele Verschachtelungen haben, wie wir wollen.
Subjects: Engineering: Mechanical engineering: Design and manufacture Automobile Control and Design Civil engineering: Structural engineering Hydropower Arts: Medieval Modern Painting
YAML stellt auch &- und *-Symbole als Anker und Verweise auf den Anker bereit, um Duplikate zu vermeiden. Sie sind in Konfigurationsdateien in Frameworks wie Ruby on Rails unerlässlich, um die YAML-Datei kleiner zu machen.
Siehe das Beispiel unten
<span class="hljs-attr">details:</span> <span class="hljs-meta">&details</span> <span class="hljs-attr">name:</span> <span class="hljs-string">"John" </span> age: 18
profession: engineer << : * details
was äquivalent ist zu:
profession: engineer name: "John" age: 18
YAML in Python
Python unterstützt YAML, einschließlich einiger Module wie ruamel und pyyaml. Beginnen Sie mit der Installation von pyyaml
pip installiere pyyaml
Erstellen Sie für das Tutorial eine Datei mit dem Namen details.yaml
name: "john" age:18 gender: male
Erstellen Sie eine weitere Datei namens „feed.yaml“ mit folgendem Inhalt:
sports: football basketball cricket baseball --- countries: Brazil Lithuania Australia 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)
Nach dem Ausführen der Datei details.py erhalten wir die folgende Ausgabe
$ python details.py {'name': "john", 'age': 18, 'gender': male}
import yaml with open(r'feed.yaml') as file: # The FullLoader parameter handles the conversion from YAML # scalar values to Python the dictionary format 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: #create a new yaml file data = yaml.dump(dict_file, file)
YAML-Implementierung in Node.js
Node.js ist eine serverseitige Verarbeitungssprache, und die Datenserialisierung ist im Entwicklungsprozess von enormer Bedeutung.
Betrachten wir für unser Tutorial die folgende Datei example.yaml:
name:John age:18 Hobbies: Hobby1:Football Hobby2:BasketBall Hobby3:Hockey Job: -System administrator -Programmer
Wir haben eine npm-Bibliothek namens Node.js verfügbar js-yaml. Beginnen wir mit der Installation des Moduls von
npm install js-yaml
Wir verwenden dann das Modul js-yaml in unserer Datei.
const yaml = require('js-yaml'); //initialize js-yaml const fs = require('fs'); //initialize filestream try { const result = yaml.load(fs.readFileSync('example.yml', 'utf8')); console.log(result); } catch (e) { console.log(e); //catch exception }
Fazit
In modernen Programmierframeworks und Anwendungen, in denen Daten gespeichert oder verteilt werden, wird YAML in Konfigurationsdateien immer häufiger verwendet. YAML zielt auf viele der gleichen Kommunikationsanwendungen ab wie XML (Extensible Markup Language), hat aber eine minimale Syntax, die sich bewusst von XML unterscheidet.
YAML-Dateien können für feste Datenstrukturen mit Druckbefehlen erstellt werden, die sowohl die Daten als auch die besondere Dekoration der YAML schreiben. Ein dedizierter YAML-Emitter ist jedoch vorzuziehen, um verschiedene oder komplexe hierarchische Daten auszugeben. In ähnlicher Weise lassen sich mit regulären Ausdrücken einfache YAML-Dateien (z. B. Schlüssel-Wert-Paare) leicht analysieren.