logo

Analysera en YAML-fil i Python

YAML är förkortningen av Yet Another Markup Language eller YAML ain't markup Language som är dataformatet som används för att utbyta data. YAML kan endast lagra data och inga kommandon. Det liknar dataformaten XML och JSON. I den här artikeln kommer vi att dyka djupt in i konceptet med att analysera YAML-filer i Python tillsammans med exemplet.

Parsar YAML-filer i Python

PyYAML Modul i Python-programmering betraktas som Parser för Python. Med detta bibliotek kan vi utföra olika operationer på YAML-filerna som att läsa eller skriva YAML-filerna. Serialisering och beständig YAML-data kan också göras med denna PyYAML-modul i Python.

För användning av PyYAML-modulen måste vi installera den i Pytonorm genom att utföra följande kommando:



pip install pyyaml>

YAML-filer sparas med två olika tillägg, det vill säga, .yaml och .yml . Eftersom vi behöver analysera YAML-filen, så har vi skapat två YAML-filer som består av data i Nyckelvärde par. Vi kommer att ta följande YAML-filer som exempel för vår artikel.

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>

Låt oss nu se några metoder som vi kan använda för att analysera en YAML-fil i Python.

Använder load()-funktionen

Funktionen yaml.load() i YAML-modulen används för att läsa YAML-data eller -objekt till en Python ordbok . Det kan finnas YAML-data som består av ett stort antal nyckel-värdepar (konfigurationsfiler), så för att läsa dessa filer kan load()-funktionen vara till hjälp eftersom den utför deserialiseringen av YAML-data till Python. De Lastare parametern för load()-funktionen är inställd på SafeLoader , som avser att ladda data från YAML säkert. Detta är användbart i scenarier där indata hämtas från otillförlitliga källor.

Python3




java är instans av
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)>

>

>

Produktion:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com>

Använder full_load()-funktionen

Funktionen yaml.full_load() används för att analysera innehållet i YAML-filen i form av nyckel-värdepar. Använd sedan Python skaffa sig() metod kan vi få specifik data från YAML-filen.

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

>

>

Produktion:

{'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'}>

Använder safe_load()-funktionen

Ett annat sätt att ladda YAML-filen i Python är att använda metoden safe_load(). Den kan användas i stället för load()-metodens SafeLoader-parameter, när data laddas från en opålitlig källa.

Python3




import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)>

>

>

Produktion:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890,  'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}>

Använder load_all()-funktionen

Metoden load_all() används när vi vill ladda ett YAML-dokument som finns i en enda fil. De Lastare parametern för load()-funktionen är inställd på SafeLoader , som avser att ladda data från YAML säkert. Detta är användbart i scenarier där indata hämtas från otillförlitliga källor.

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

123 film
>

>

Produktion:

[{'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'}]>