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.
Innholdsfortegnelse
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.
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.
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.
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.