Introduksjon til YAML for nybegynnere

Hvis du er en utvikler som skriver APIer, har du sannsynligvis kommet over YAML selv om det primære serialiseringsverktøyet ditt kan være JSON.

YAML har sin egen vennlige syntaks, og det er et praktisk språk å legge til utviklingsarsenalet ditt.

La oss lære det grunnleggende om YAML.

Dataserialisering

Når du vil sende en datastruktur eller et objekt på tvers av datanettverk, for eksempel Internett, må du gjøre det om til et spesielt format for å lese det og lagre det. Prosessen er kjent som serialisering og er av enorm betydning på nettet. Et vanlig brukseksempel på serialisering er når du leser data fra databaser og overfører dem over nettet.

Noen serialiseringsformasjoner inkluderer JSON, YAML, XML.

I denne artikkelen snakker vi om YAML, og på slutten av artikkelen vil du kunne jobbe deg gjennom YAMLand med en tydelig introduksjon til YAML.

Hva er YAML, og hvordan gagner det meg?

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

Den største fordelen med å bruke YAML er lesbarhet og skrivbarhet. Hvis du har en konfigurasjonsfil som må være lettere for mennesker å lese, er det bedre å bruke YAML. YAML er ikke en fullstendig erstatning av JSON da JSON og XML også har sine steder; Likevel er det nyttig å lære YAML.

  11 Influencer-markedsføringsplattformer du kan bruke for din neste kampanje

En annen fordel med YAML er støtten til ulike datatyper som saker, matriser, ordbøker, lister og skalarer. Den har god støtte for de mest populære språkene som JavaScript, Python, Ruby, Java, etc.

YAML støtter kun mellomrom, og det skiller mellom store og små bokstaver så vel som mellomrom. Faner er ikke akseptert universelt. En YAML-fil har filtypen .yaml.

Grunnleggende YAML-syntaks

Hver YAML starter med — som angir starten på en YAML-fil.

Når vi oppretter et API, er vi interessert i en funksjon levert av YAML kjent som kartlegging.

Følgende eksempler viser eksempelet på kartlegging i YAML.

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

Kartleggingssyntaksen er nøkkel: verdi. (Merk plassen, den er veldig viktig i YAML, i motsetning til JSON eller XML.

YAML støtter også datatyper som tegn, strenger, heltall, flytende verdier og samlinger som arrays, lister som er konstruert fra grunnleggende datatyper.

Datatyper i YAML

La oss se eksempelet på en YAML nedenfor:

---

MALE: FALSE

GPA: 3.61

ISSUES: NULL

NAME: “BIGYAN”

AGE: 16

Den første datatypen er en boolsk, der den kan ha to verdier: sann eller usann. Verdien av GPA er flyttall. YAML støtter også null-datatypen som vi har for «Problemer». Verdien til «Navn» er en streng som må anføres innenfor doble eller enkle anførselstegn. YAML støtter også flerlinjestreng og flerlinjestreng som en enkelt for lesbarhet.

Flerlinje- og enkeltlinjestrenger

---

About: >

 Hello this is Ryan

 From Alabama and I like to

 Play soccer.

>-symbolet lar deg skrive en enkeltlinjestreng til flere linjer. Setningen er faktisk en enkeltlinjebeskrivelse, selv om vi har flere linjer.

  Blockchain forretningsmodell i et nøtteskall

Vi kan også ha flere linjestrenger hvis vi bruker | symbol som tillatt:

About: |

 This is a multiline string

 And will be printed line wise.

Liste

Lister er veldig viktige i YAML.

Et eksempel på listen er gitt nedenfor.

---

- apple

- banana

- mango

Kartlegging fra skalar til lister er vist nedenfor, noe som er veldig viktig for de fleste konfigurasjonsfiler.

---

Fruits:

 Apples

 Banana

 Guava 

Nesting er nødvendig for å kartlegge skalar til liste. Vi kan også ha flere nestede lister, som vist i eksemplet nedenfor.

Automobiles:

 Car:

     Hyundai

     Volkswagen

     Ford

Her er biler nestet inne i biler, og Hyundai er nestet inne i biler. Dette er et eksempel på multiple hekking. Vi kan ha flere hekking så mye vi vil.

Subjects:

     Engineering:

       Mechanical engineering:

         Design and manufacture

         Automobile

         Control and Design

       Civil engineering:

         Structural engineering

         Hydropower

       Arts:

         Medieval

         Modern

         Painting

YAML gir også & og * symboler som ankere og referanser til ankeret for å unngå duplisering. De er essensielle i konfigurasjonsfiler i rammeverk som Ruby on Rails for å gjøre YAML-filen mindre.

Se eksempelet 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

som tilsvarer:

profession: engineer

name: "John"

age: 18

YAML i Python

Python støtter YAML, inkludert noen moduler som ruamel og pyyaml. Start med å installere pyyaml

pip installer pyyaml

For opplæringen, lag en fil med navnet details.yaml

name: "john"

age:18

gender: male

Opprett en annen fil med navnet feed.yaml med følgende innhold:

sports:

 football
 basketball
 cricket
 baseball

---
countries:
 Brazil
 Lithuania
 Australia
 USA

La oss starte med å lese filen details.yaml

import yaml

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

Etter å ha kjørt filen details.py, får vi følgende utgang

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

Skrive 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 prosesseringsspråk på serversiden, og dataserialisering er av enorm betydning i utviklingsprosessen.

  15 beste plagiatkontrollverktøy for å forhindre kopiering i 2022

For vår veiledning, la oss vurdere følgende fil example.yaml:

name:John

age:18

Hobbies:

 Hobby1:Football

 Hobby2:BasketBall

 Hobby3:Hockey

Job:

-System administrator

-Programmer

Vi har et npm-bibliotek tilgjengelig for Node.js kalt js-yaml. La oss starte med å installere modulen ved å

npm install js-yaml

Vi bruker deretter js-yaml-modulen i filen vår.

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
}

Konklusjon

I moderne programmeringsrammeverk og applikasjoner hvor data lagres eller distribueres, blir YAML stadig mer vanlig i konfigurasjonsfiler. YAML retter seg mot mange av de samme kommunikasjonsapplikasjonene som Extensible Markup Language (XML), men har en minimal syntaks som er bevisst forskjellig fra XML.

YAML-filer kan opprettes for faste datastrukturer ved å bruke utskriftskommandoer som skriver både dataene og YAMLs spesielle dekorasjon. Imidlertid er en dedikert YAML-emitter å foretrekke for å dumpe forskjellige eller komplekse hierarkiske data. På samme måte, med regulære uttrykk, kan grunnleggende YAML-filer (f.eks. nøkkelverdi-par) lett analyseres.