YAML je okrajšava za Yet Another Markup Language ali YAML ni označevalni jezik, ki je format podatkov, ki se uporablja za izmenjavo podatkov. YAML lahko shrani samo podatke in nobenih ukazov. Podoben je formatom podatkov XML in JSON. V tem članku se bomo skupaj s primerom poglobili v koncept razčlenjevanja datotek YAML v Pythonu.
Razčlenjevanje datotek YAML v Pythonu
PyYAML Modul v programiranju Python velja za razčlenjevalnik za Python. Z uporabo te knjižnice lahko izvajamo različne operacije na datotekah YAML, kot je branje ali pisanje datotek YAML. Serializacijo in ohranjanje podatkov YAML lahko izvedete tudi s tem modulom PyYAML v Pythonu.
Za uporabo modula PyYAML ga moramo namestiti Python z izvedbo spodnjega ukaza:
pip install pyyaml>
Datoteke YAML so shranjene z uporabo dveh različnih končnic, to sta .yaml in .yml . Ker moramo razčleniti datoteko YAML, smo ustvarili dve datoteki YAML, ki vsebujeta podatke v Ključ: vrednost par. Za naš članek bomo kot primer vzeli naslednje datoteke YAML.
geeksforgeek.yml
UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills: -Python -SQL -Django -Javascript>
multi_docs.yml
--- UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills: -Python -SQL -Django -Javascript ... --- UserName: Google Password: google@123 Phone: 1234567890 Website: google.com Skills: -Python -SQL -Django -Javascript ... --- UserName: Yahoo Password: yahoo@123 Phone: 1234567890 Website: yahoo.com Skills: -Python -SQL -Django -Javascript>
Zdaj pa si oglejmo nekaj metod, s katerimi lahko razčlenimo datoteko YAML v Pythonu.
Uporaba funkcije load().
Funkcija yaml.load() v modulu YAML se uporablja za branje podatkov ali predmeta YAML v Slovar Python . Podatki YAML so lahko sestavljeni iz ogromnega števila parov ključ-vrednost (konfiguracijske datoteke), zato je za branje teh datotek lahko v pomoč funkcija load(), saj izvede deserializacijo podatkov YAML v Python. The Nakladalec parameter funkcije load() je nastavljen na SafeLoader , ki namerava varno naložiti podatke YAML. To je koristno v scenarijih, kjer je vnos vzet iz nezaupljivih virov.
Python3
niz java seznama
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)> |
>
>
Izhod:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890, 'Website': 'techcodeview.com> Uporaba funkcije full_load().
Funkcija yaml.full_load() se uporablja za razčlenitev vsebine datoteke YAML v obliki parov ključ-vrednost. Nato z uporabo Pythona dobiti () metodo lahko pridobimo določene podatke iz datoteke YAML.
Python3
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.full_load(f)> > # Print the values as a dictionary> output>=> {> >'UserName'>: data.get(>'UserName'>),> >'Password'>: data.get(>'Password'>),> >'phone'>: data.get(>'Phone'>),> >'Skills'>:>' '>.join(data.get(>'Skills'>, []))> }> print>(output)> |
>
>
Izhod:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'phone': 1234567890, 'Skills': '- P y t h o n - S Q L - D j a n g o - J a v a s c r i p t'}> Uporaba funkcije safe_load().
Drug način nalaganja datoteke YAML v Python je uporaba metode safe_load(). Uporablja se lahko namesto parametra SafeLoader metode load(), ko so podatki naloženi iz nezaupljivega vira.
Python3
import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)> |
>
>
Izhod:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890, 'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}> Uporaba funkcije load_all().
Metoda load_all() se uporablja, ko želimo naložiti dokument YAML v eni datoteki. The Nakladalec parameter funkcije load() je nastavljen na SafeLoader , ki namerava varno naložiti podatke YAML. To je koristno v scenarijih, kjer je vnos vzet iz nezaupljivih virov.
Python3
import> yaml> from> yaml.loader>import> SafeLoader> # open yaml file in read> with>open>(>'multiple_documents.yml'>,>'r'>) as f:> >yaml_data>=> list>(yaml.load_all(f, Loader>=>SafeLoader))> >print>(yaml_data)> |
>
java spremenljivka spremenljivka
>
Izhod:
[{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890, 'Website': 'techcodeview.com {'UserName': 'Google', 'Password': 'google@123', 'Phone': 1234567890, 'Website': 'google.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'}, {'UserName': 'Yahoo', 'Password': 'yahoo@123', 'Phone': 1234567890, 'Website': 'yahoo.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'}]>