yaml tutorial comprehensive guide yaml using python
Ta vadnica YAML pojasnjuje, kaj je YAML, osnovni koncepti YAML, kot so tipi podatkov, validator YAML, razčlenjevalnik, urejevalnik, datoteke itd., S pomočjo primerov kode z uporabo Pythona:
Obdelava besedila v računalništvu pomaga programerjem pri ustvarjanju nastavljivih programov in aplikacij. Označevalni jeziki igrajo ključno vlogo pri shranjevanju in izmenjavi podatkov v človekom berljivi obliki.
Poleg tega programerji uporabljajo označevalne jezike kot običajne in standardne formate za izmenjavo podatkov med različnimi sistemi. Nekateri primeri med označevalnimi jeziki vključujejo HTML, XML, XHTML in JSON.
V tem vadnici YAML, ki je enostavno slediti, smo delili informacije o še enem označevalnem jeziku.
Ta vadnica pomaga bralcem pri iskanju odgovorov na spodaj navedena vprašanja. Učenci lahko naredijo prve korake in razumejo skrivnost označevalnih jezikov na splošno in zlasti YAML.
Vprašanja vključujejo:
kako razvrstiti polje v javi
- Zakaj potrebujemo označevalne jezike?
- Kaj pomeni YAML?
- Zakaj je bil ustvarjen YAML?
- Zakaj se moramo učiti YAML?
- Zakaj je danes pomembno, da se naučimo YAML?
- Kakšno vrsto podatkov lahko shranim v YAML?
Ta priročnik je koristen za izkušene bralce tudi zato, ker razpravljamo o konceptih v kontekstu programiranja na splošno in tudi v okviru testiranja programske opreme. Tu bomo obravnavali tudi teme, kot sta serializacija in deserializacija.
Kaj se boste naučili:
Kaj je YAML
Ustvarjalci YAML so ga sprva imenovali kot 'Še en označevalni jezik.' Sčasoma pa se je kratica spremenila v 'YAML ni MarkUp jezik.' YAML je kratica, ki se nanaša na sebe in se imenuje rekurzivna kratica.
Ta jezik lahko uporabljamo za shranjevanje podatkov in konfiguracije v razumljivi obliki. YAML je osnovni jezik za učenje. Tudi njegove konstrukcije je enostavno razumeti.
Clark, Ingy in Oren so ustvarili YAML za reševanje zapletenosti razumevanja drugih označevalnih jezikov, ki jih je težko razumeti, učna krivulja pa je tudi bolj strma kot učenje YAML.
Za lažje učenje, kot vedno, uporabimo vzorčni projekt. Ta projekt gostimo na Githubu z licenco MIT, da ga lahko kdor koli spremeni in po potrebi odda zahtevo za vlečenje.
Projekt lahko klonirate s spodnjim ukazom.
git clone git@github.com:h3xh4wk/yamlguide.git
Vendar, če je potrebno, lahko naložite zip datoteko za kodo in primere.
Bralci lahko ta projekt klonirajo tudi s pomočjo IntelliJ IDEA. Pred kloniranjem projekta izpolnite razdelek o predpogojih za namestitev Pythona in njegovo konfiguracijo z IntelliJ IDEA.

Zakaj potrebujemo označevalne jezike
Nemogoče je vsega zapisati v programsko kodo. To je zato, ker moramo občasno vzdrževati kodo in moramo podrobnosti povzeti zunanjim datotekam ali bazam podatkov.
Najboljša praksa je, da kodo čim manj zmanjšate in jo ustvarite tako, da je ni treba spreminjati za različne vnose podatkov, ki jih potrebujete.
Na primer lahko napišemo funkcijo za prevzem vhodnih podatkov iz zunanje datoteke in njeno vsebino natisnemo vrstico za vrstico, namesto da bi v eno datoteko zapisali kodo in podatke.
Šteje se za najboljšo prakso, ker ločuje pomisleke glede ustvarjanja podatkov in ustvarjanja kode. Programski pristop k povzemanju podatkov iz kode zagotavlja enostavno vzdrževanje.
Označevalni jeziki nam olajšajo shranjevanje hierarhičnih informacij v dostopnejši in lažji obliki. Te datoteke je mogoče med programi izmenjevati prek interneta, ne da bi porabili veliko pasovne širine, in podpirajo najpogostejše protokole.
Ti jeziki sledijo univerzalnemu standardu in podpirajo različna kodiranja, ki podpirajo znake skoraj iz vseh govorjenih jezikov na svetu.
Najboljše pri označevalnih jezikih je, da njihova splošna raba ni povezana z nobenim sistemskim ukazom, ta lastnost pa jih naredi varnejše in je razlog za njihovo široko uporabo po vsem svetu. Zato morda ne boste našli nobenega ukaza YAML, ki bi ga lahko neposredno zagnali za ustvarjanje kakršnega koli izhoda.
Prednosti uporabe datoteke YAML
YAML ima veliko prednosti. Spodnja tabela prikazuje primerjavo med YAML in JSON. JSON pomeni JavaScript Object Notation in ga uporabljamo kot format izmenjave podatkov.
Atribut | YAML | JSON |
---|---|---|
Podrobnost | Manj podrobno | Bolj podrobno |
Vrste podatkov | Podpira zapletene vrste podatkov. | Ne podpira zapletenih podatkovnih vrst. |
Komentarji | Podpira pisanje komentarjev z uporabo '#'. | Ne podpira pisanja komentarjev. |
Berljivost | Bolj berljivo za ljudi. | Manj berljivo za ljudi. |
Samoreferenca | Podpira sklicevanje na elemente v istih dokumentih z uporabo & &, in *. | Ne podpira samonavajanja. |
Več dokumentov | Podpira več dokumentov v eni datoteki. | Podpira en dokument v eni datoteki. |
Zaradi prednosti YAML pred drugimi formati datotek, kot je JSON, je YAML med razvijalci bolj razširjen zaradi svoje vsestranskosti in prilagodljivosti.
Predpogoji
Najprej namestimo Python in nato z IntelliJ IDEA konfiguriramo Python in njegove pakete. Zato namestite IntelliJ IDEA, če še ni nameščen, preden nadaljujete.
Namestite Python
Sledite tem korakom za namestitev in namestitev Pythona v sistemu Windows 10.
Korak 1
Prenesite Python in jo namestite tako, da izberete nastavitev, kot je prikazano na spodnji sliki.

2. korak
Zaženite namestitev in izberite prilagodite namestitev. Potrdite polje Dodajanje Pythona v PATH .

3. korak
Prilagodite lokacijo Pythona, kot je prikazano na sliki.

4. korak
Nadaljujte z namestitvijo. Na koncu čarovnika za namestitev onemogočite omejitev poti v sistemu Windows, tako da kliknete možnost v čarovniku.

Zdaj je namestitev Pythona končana.
Konfigurirajte Python z IntelliJ IDEA
Konfigurirajmo IntelliJ IDEA s Pythonom. Prvi korak je namestitev vtičnikov, da boste lahko delali na projektih Python.
Namestite vtičnike Python
Namestite izdajo skupnosti Python

Namestite Python Security

Za dokončanje konfiguracije sledite spodnjim korakom.
Korak 1
Uporabite meni Datoteka in pojdite na nastavitve platforme. Kliknite na Dodaj gumb SDK .

2. korak
Izberite Možnost navideznega okolja in izberite Pythonov osnovni tolmač kot tistega, ki je bil nameščen v prejšnjem koraku.

3. korak
Zdaj izberite navidezno okolje, ustvarjeno v prejšnjem koraku pod Nastavitve projekta SDK .

Za en projekt priporočamo eno navidezno okolje.
4. korak (neobvezno)
Odprite datoteko config.py iz raziskovalca projekta in kliknite zahteve za namestitev , kot je prikazano na spodnji sliki.

Po potrebi prezrite zahtevo po ipythonu, tako da počistite polje v pogovornem oknu Izberi paket.

Zdaj lahko preidete na naslednji razdelek, kjer se boste naučili osnov YAML-a.
Osnove YAML-a
V tem poglavju omenimo osnove YAML s pomočjo primerne datoteke, imenovane config.yml in config.py. Trdno verjamemo, da razlaga konceptov YAML vzporedno z njegovo uporabo v programskem jeziku izboljša učenje.
najboljše spletno mesto za ogled sinhroniziranega animeja
Zato med razlaganjem osnov v YAML vključujemo tudi uporabo Pythona za branje in zapisovanje podatkov, shranjenih v YAML.
Zdaj pa ustvarimo ali odprimo config.yml v naših urednikih in razumemo YAML.
--- quiz: description: > 'This Quiz is to learn YAML.' questions: - ('How many planets are there in the solar system?', 'Name the non-planet') - 'Who is found more on the web?' - 'What is the value of pi?' - 'Is pluto related to platonic relationships?' - 'How many maximum members can play TT?' - 'Which value is no value?' - 'Don't you know that the Universe is ever-expanding?' answers: - (8, 'pluto') - cats - 3.141592653589793 - true - 4 - null - no # explicit data conversion and reusing data blocks extra: refer: &id011 # give a reference to data x: !!float 5 # explicit conversion to data type float y: 8 num1: !!int '123' # conversion to integer str1: !!str 120 # conversion to string again: *id011 # call data by giving the reference
Upoštevajte, da imajo datoteke YAML.lypodaljšanje. Jezik razlikuje med velikimi in malimi črkami. Za vdolbino uporabljamo presledke in ne zavihkov.
Skupaj s temi osnovami bomo razumeli tudi vrste podatkov. V omenjenem YAML smo informacije predstavili v kvizu. Kviz je prikazan kot vozlišče na korenski ravni z atributi, kot so opis, vprašanja in odgovori.
Vrste podatkov YAML
YAML lahko shranjuje skalarje, zaporedja in preslikave. V datoteki config.yml smo prikazali, kako zapisati vse potrebne podatkovne tipe.
Skalarji so nizi, cela števila, floati in logične vrednosti. Podatki vrste Strings so zaprti z dvojnimi narekovaji “. Vendar YAML ne nalaga pisanja nizov z dvojnimi narekovaji in lahko uporabimo> ali | za pisanje dolgih nizov v več vrstic.
Oglejte si različne vrste podatkov in preslikane vrednosti v spodnji tabeli.
Vrsta podatkov | Primeri podatkovnih vrst v Config.yml |
---|---|
Vrvica Strune lahko shranite z narekovaji ali brez njih. | kviz: opis:> Ta kviz je namenjen učenju YAML vprašanja: - 'Kdo je več na spletu?' odgovori: - mačke |
Celo število in lebdenje Cela števila in float so omenjeni v svoji prvotni obliki | kviz: vprašanja: - 'Kakšna je vrednost pi?' - 'Koliko največ članov lahko igra TT?' odgovori: - 3,141592653589793 - 4 |
Logično Logične vrednosti se shranijo z nizom true / false ali yes / no | kviz: vprašanja: - 'Ali je pluto povezan s platonskimi odnosi?' - 'Ali ne veste, da se vesolje nenehno širi?' odgovori: - prav - ne |
Zaporedja Zaporedja se ustvarjajo s pomočjo oglatih oklepajev (. | kviz: odgovori: - (8, 'pluto') |
Reference Samoreferenca se uporablja s pomočjo & in * | # eksplicitna pretvorba podatkov in ponovna uporaba podatkovnih blokov doplačilo: glej: & id011 # poda sklic na podatke # Druge vrednosti še enkrat: * id011 # klic podatkov s podajanjem reference |
Spodaj je navedenih nekaj pomembnih dodatnih elementov datoteke YAML.
Dokument
Zdaj pa opazite tri pomišljaje -. Označuje začetek dokumenta. Prvi dokument s kvizom shranimo kot korenski element, opis, vprašanja in odgovore pa kot podrejene elemente s pripadajočimi vrednostmi.
Izrecne vrste podatkov
Upoštevajte ključ odseka, imenovan ekstra v config.yml. Vidimo, da lahko s pomočjo dvojnih vzklikov izrecno omenimo tipe podatkov vrednosti, shranjene v datoteki. Celo število pretvorimo v float z uporabo !! float. !! pretvorimo celo število v niz, z nizom !! int pa pretvorimo v celo število.
Pythonov paket YAML nam pomaga pri branju datoteke YAML in jo interno shranimo kot slovar. Python shrani slovarske ključe kot nize in samodejno pretvori vrednosti v podatkovne tipe Python, razen če je izrecno navedeno z uporabo '!!'.
Preberite datoteko YAML v Pythonu
Na splošno uporabljamo urejevalnik YAML in validator YAML v času pisanja YAML. YAML Validator preveri datoteko v času pisanja.
Paket YAML Python ima vgrajen razčlenjevalnik YAML, ki datoteko razčleni, preden jo shrani v pomnilnik.
Zdaj pa ustvarimo in odprimo config.py v naših urednikih s spodnjo vsebino.
import yaml import pprint def read_yaml(): ''' A function to read YAML file''' with open('config.yml') as f: config = yaml.safe_load(f) return config if __name__ == '__main__': # read the config yaml my_config = read_yaml() # pretty print my_config pprint.pprint(my_config)
Če želite preveriti, ali ste izvedli zgoraj omenjene korake, zaženite config.py.
Odprite datoteko config.py v programu IntelliJ IDEA, poiščite glavni blok in zaženite datoteko z ikono za predvajanje.

Ko zaženemo datoteko, vidimo konzolo z izhodnimi podatki.

V funkciji read_yaml odpremo datoteko config.yml in uporabimo metodo safe_load paketa YAML za branje toka kot slovar Python in nato vrnemo ta slovar s ključno besedo return.
spremenljivka my_config vsebino datoteke config.yml shrani kot slovar. Z uporabo Pythonovega lepega tiskalnega paketa, imenovanega pprint, slovar natisnemo na konzolo.
Upoštevajte zgornji izhod. Vse oznake YAML ustrezajo Pythonovim podatkovnim vrstam, tako da lahko program te vrednosti še naprej uporablja. Ta postopek konstrukcije objektov Python iz vnosa besedila se imenuje deserializacija.
Datoteko YAML zapišite v Python
Odprite config.py in dodajte naslednje vrstice kode tik pod metodo read_yaml in nad glavnim blokom datoteke.
def write_yaml(data): ''' A function to write YAML file''' with open('toyaml.yml', 'w') as f: yaml.dump(data, f)
V metodi write_yaml odpremo datoteko z imenom toyaml.yml v načinu pisanja in uporabimo metodo odlaganja paketov YAML, da v datoteko zapišemo dokument YAML.
Zdaj dodajte spodnje vrstice kode na koncu datoteke config.py
# write A python object to a file write_yaml(my_config)
Shranite config.py in zaženite datoteko z uporabo spodnjega ukaza ali z ikono za predvajanje v IDE.
python config.py
Vidimo, da zgornji ukaz natisne vsebino config.yml na konzolo ali izhod sistema. Program Python isto vsebino zapiše v drugo datoteko, imenovano toyaml.yml. Postopek zapisovanja predmeta Python v zunanjo datoteko se imenuje serializacija.
Več dokumentov v YAML
YAML je zelo vsestranski in v eno datoteko YAML lahko shranimo več dokumentov.
Ustvarite kopijo datoteke config.yml kot configs.yml in prilepite spodnje vrstice na konec datoteke.
--- quiz: description: | This is another quiz, which is the advanced version of the previous one questions: q1: desc: 'Which value is no value?' ans: Null q2: desc: 'What is the value of Pi?' ans: 3.1415
Trije pomišljaji - v zgornjem delčku označuje začetek novega dokumenta v isti datoteki. Uporaba | potem ko nam opisna oznaka omogoča, da napišemo večvrstično besedilo vrste string. Tukaj v novem dokumentu imamo shranjena vprašanja in odgovore kot ločena preslikava, ugnezdena pod vprašanja.
Zdaj ustvarite novo datoteko z imenom configs.py in v datoteko prilepite spodnjo kodo.
import yaml import pprint def read_yaml(): ''' A function to read YAML file''' with open('configs.yml') as f: config = list(yaml.safe_load_all(f)) return config def write_yaml(data): ''' A function to write YAML file''' with open('toyaml.yml', 'a') as f: yaml.dump_all(data, f, default_flow_style=False) if __name__ == '__main__': # read the config yaml my_config = read_yaml() # pretty print my_config pprint.pprint(my_config) # write A python object to a file write_yaml(my_config)
Opazite spremembe v funkcijah read_yaml in write_yaml. V read_yaml uporabljamo metodo safe_load_all paketa YAML za branje vseh dokumentov, ki so prisotni v configs.yml kot seznam. Podobno v write_yaml uporabljamo metodo dump_all za zapisovanje vseh prej prebranih dokumentov v novo datoteko z imenom toyaml.yml.
Zdaj zaženite configs.py.
python configs.py
Izhod zgornjega ukaza je prikazan spodaj.
({'quiz': {'answers': ((8, 'pluto'), 'cats', 3.141592653589793, True, 4, None, False), 'description': 'This Quiz is to learn YAML', 'questions': (('How many planets are there in the solar system?', 'Name the non planet'), 'Who is found more on the web?', 'What is the value of pi?', 'Is pluto related to platonic relationships?', 'How many maximum members can play TT?', 'Which value is no value?', 'Don't you know that Universe is ever-expanding?')}}, {'quiz': {'description': 'This is another quiz, which
' 'is the advanced version of the previous one
', 'questions': {'q1': {'ans': None, 'desc': 'Which value is no value?'}, 'q2': {'ans': 3.1415, 'desc': 'What is the value of Pi?'}}}})
Izhod je podoben prej omenjenemu izhodu posameznega dokumenta. Python pretvori vsak dokument v configs.yml v slovar Python. Olajša nadaljnjo obdelavo in uporabo vrednosti.
Pogosto zastavljena vprašanja
Med delom z YAML lahko naletite na spodnja vprašanja.
najboljši urejevalnik besedil za python mac
V # 1) Ali je mogoče ohraniti vrstni red preslikav YAML?
Odgovor: Da, privzeto vedenje nalagalnikov je mogoče prilagoditi v Pythonovem paketu pyYAML. Vključuje uporabo OrderedDicts in preglasitev osnovnega razreševalnika z metodami po meri, kot je prikazano tukaj .
V # 2) Kako shraniti sliko v YAML?
Odgovor: Sliko lahko base64 kodirate in jo shranite v YAML, kot je prikazano spodaj.
image: !!binary | iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==
V # 3) Kakšna je razlika med> in | oznake v YAML?
Odgovor: Oba> in | dovoli zapisovanje vrednosti v več vrstic v YAML. Za zapis večvrstičnih nizov in | uporabljamo več kot simbol> predstavljati dobesedne vrednosti. Vrednosti, napisane z | ni treba ubežati. Na primer Html lahko shranimo z uporabo |.
template: | This is a test paragraph
This is another paragraph
V # 4) Kakšen je pomen ... na koncu datoteke YAML.
Odgovor: Tri obdobja ... so neobvezni identifikatorji. Z njimi lahko označimo konec dokumenta v toku.
V # 5) Kako zapisati komentarje v datoteko YAML?
Odgovor: S pomočjo # napišemo enovrstni komentar. YAML ne podpira večvrstičnih komentarjev. Tako moramo uporabiti # v več vrsticah, kot je prikazano spodaj.
# this is # a single line as well as multi-line # comment
Zaključek
V tem priročniku smo opisali korake priprave razvojnega okolja tako v sistemu Windows kot v Linuxu za začetek uporabe YAML. Skoraj smo razpravljali o vseh konceptih osnovnih podatkovnih vrst YAML, urejevalniku YAML in razčlenjevalniku YAML.
Izpostavili smo tudi prednosti uporabe YAML v primerjavi z drugimi označevalnimi jeziki in s pomočjo podpornega vzorčnega projekta podali primere kode. Upamo, da lahko zdaj učenci uporabljajo YAML za abstrahiranje podatkov iz aplikacijske logike za pisanje učinkovite in vzdrževalne kode.
Srečno učenje !!
Priporočeno branje
- Vadnica za Python za začetnike (praktično BREZPLAČNO usposabljanje za Python)
- Uvod in postopek namestitve Pythona
- Vadnica za Python Django - Kako začeti z Django
- Vadnica Python DateTime s primeri
- Vadnica za obdelavo datotek Python: Kako ustvariti, odpreti, prebrati, zapisati
- Vadnica za TestComplete: Izčrpen priročnik za orodje za testiranje grafičnega uporabniškega vmesnika za začetnike
- Izjave o nadzoru Pythona (Python Continue, Break and Pass)
- Koncepti Python OOP (razredi, predmeti in dedovanje Python)