Introduktion til YAML for begyndere

Hvis du er en udvikler, der skriver API’er, er du sandsynligvis stødt på YAML, selvom dit primære serialiseringsværktøj kan være JSON.

YAML har sin egen venlige syntaks, og det er et praktisk sprog at tilføje til dit udviklingsarsenal.

Lad os lære det grundlæggende i YAML.

Data serialisering

Når du vil sende en datastruktur eller et objekt på tværs af computernetværk, f.eks. internettet, skal du omdanne det til et specielt format for at læse det og gemme det. Processen er almindeligvis kendt som serialisering og er af enorm betydning på nettet. Et almindeligt brugseksempel på serialisering er, når du læser data fra databaser og overfører dem på tværs af nettet.

Nogle serialiseringsformationer inkluderer JSON, YAML, XML.

I denne artikel taler vi om YAML, og i slutningen af ​​artiklen vil du være i stand til at arbejde dig igennem YAMLand og få en klar introduktion til YAML.

Hvad er YAML, og hvordan gavner det mig?

YAML er et dataserialiseringsformat, der står for YAML ain’t Markup language.

Den største fordel ved at bruge YAML er læsbarhed og skrivbarhed. Hvis du har en konfigurationsfil, der skal være nemmere for mennesker at læse, er det bedre at bruge YAML. YAML er ikke en komplet erstatning af JSON, da JSON og XML også har deres pladser; ikke desto mindre er det nyttigt at lære YAML.

  Sådan annullerer du et eharmony-abonnement

En anden fordel ved YAML er dens understøttelse af forskellige datatyper som sager, arrays, ordbøger, lister og skalarer. Det har god understøttelse af de mest populære sprog som JavaScript, Python, Ruby, Java osv.

YAML understøtter kun mellemrum, og det er både store og små bogstaver. Faner accepteres ikke universelt. En YAML-fil har filtypenavnet .yaml.

Grundlæggende YAML-syntaks

Hver YAML starter med — hvilket angiver starten på en YAML-fil.

Når vi opretter en API, er vi interesserede i en funktion leveret af YAML kendt som kortlægning.

De følgende eksempler viser eksemplet med kortlægning i YAML.

---
name: James
boy: yes
GPA: 3.41

Tilknytningssyntaksen er nøglen: værdi. (Bemærk pladsen, den er meget afgørende i YAML, i modsætning til JSON eller XML.

YAML understøtter også datatyper som tegn, strenge, heltal, flydende værdier og samlinger som arrays, lister, der er konstrueret ud fra grundlæggende datatyper.

Datatyper i YAML

Lad os se eksemplet på en YAML nedenfor:

---

MALE: FALSE

GPA: 3.61

ISSUES: NULL

NAME: “BIGYAN”

AGE: 16

Den første datatype er en boolean, hvor den kan have to værdier: sand eller falsk. Værdien af ​​GPA er floating-point. YAML understøtter også null-datatypen, som vi har for “Problemer”. Værdien af ​​”Navn” er en streng, der skal citeres inden for dobbelte eller enkelte anførselstegn. YAML understøtter også multiline streng og multiline streng som en enkelt for læsbarhed.

Multiline og single-line strenge

---

About: >

 Hello this is Ryan

 From Alabama and I like to

 Play soccer.

>-symbolet lader dig skrive en enkelt linjestreng til flere linjer. Sætningen er faktisk en enkelt linjebeskrivelse, selvom vi har flere linjer.

  Sådan svømmes og dykkes i 'Animal Crossing: New Horizons'

Vi kan også have flere linjestrenge, hvis vi bruger | symbol som tilladt:

About: |

 This is a multiline string

 And will be printed line wise.

Liste

Lister er meget vigtige i YAML.

Et eksempel på listen er givet nedenfor.

---

- apple

- banana

- mango

Kortlægning fra skalar til lister er vist nedenfor, hvilket er meget vigtigt for de fleste konfigurationsfiler.

---

Fruits:

 Apples

 Banana

 Guava 

Indlejring er påkrævet for at kortlægge skalar til liste. Vi kan også have flere indlejrede lister, som vist i eksemplet nedenfor.

Automobiles:

 Car:

     Hyundai

     Volkswagen

     Ford

Her er biler indlejret inde i biler, og Hyundai er indlejret inde i biler. Dette er et eksempel på multiple nesting. Vi kan have flere rede, så meget vi vil.

Subjects:

     Engineering:

       Mechanical engineering:

         Design and manufacture

         Automobile

         Control and Design

       Civil engineering:

         Structural engineering

         Hydropower

       Arts:

         Medieval

         Modern

         Painting

YAML giver også & og * symboler som ankre og referencer til ankeret for at undgå duplikering. De er essentielle i konfigurationsfiler i rammer som Ruby on Rails for at gøre YAML-filen mindre.

Se eksemplet nedenfor

<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

hvilket svarer til:

profession: engineer

name: "John"

age: 18

YAML i Python

Python understøtter YAML, inklusive nogle moduler som ruamel og pyyaml. Start med at installere pyyaml

pip installer pyyaml

Til selvstudiet skal du oprette en fil med navnet details.yaml

name: "john"

age:18

gender: male

Opret endnu en fil ved navn feed.yaml med følgende indhold:

sports:

 football
 basketball
 cricket
 baseball

---
countries:
 Brazil
 Lithuania
 Australia
 USA

Lad os starte med at læse filen details.yaml

import yaml

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

Efter at have kørt filen details.py, får vi følgende output

 $ 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)

Skriver YAML til filer i 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 implementering i Node.js

Node.js er et behandlingssprog på serversiden, og dataserialisering er af enorm betydning i udviklingsprocessen.

  Liste over Roblox Bitcoin Miner-koder: Indløs nu

Til vores selvstudie, lad os overveje følgende fil eksempel.yaml:

name:John

age:18

Hobbies:

 Hobby1:Football

 Hobby2:BasketBall

 Hobby3:Hockey

Job:

-System administrator

-Programmer

Vi har et tilgængeligt npm-bibliotek for Node.js kaldet js-yaml. Lad os starte med at installere modulet ved

npm install js-yaml

Vi bruger derefter js-yaml-modulet i vores fil.

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
}

Konklusion

I moderne programmeringsrammer og applikationer, hvor data lagres eller distribueres, bliver YAML mere og mere almindeligt i konfigurationsfiler. YAML retter sig mod mange af de samme kommunikationsapplikationer som Extensible Markup Language (XML), men har en minimal syntaks, der bevidst er forskellig fra XML.

YAML-filer kan oprettes til faste datastrukturer ved hjælp af printkommandoer, der skriver både data og YAML’s særlige dekoration. En dedikeret YAML-emitter er dog at foretrække til at dumpe forskellige eller komplekse hierarkiske data. På samme måde, med regulære udtryk, analyseres grundlæggende YAML-filer (f.eks. nøgleværdi-par) let.