logo

Išanalizuoti YAML failą Python

YAML yra santrumpa iš Yet Another Markup Language arba YAML nėra žymėjimo kalba, kuri yra duomenų formatas, naudojamas keistis duomenimis. YAML gali saugoti tik duomenis ir jokių komandų. Jis panašus į XML ir JSON duomenų formatus. Šiame straipsnyje kartu su pavyzdžiu pasinersime į YAML failų analizavimo Python koncepciją.

YAML failų analizė Python

PyYAML Python programavimo modulis laikomas Python analizatoriumi. Naudodamiesi šia biblioteka, galime atlikti įvairias YAML failų operacijas, pvz., skaityti ar rašyti YAML failus. Serializavimas ir nuolatiniai YAML duomenys taip pat gali būti atliekami naudojant šį PyYAML modulį Python.

Norėdami naudoti PyYAML modulį, turime jį įdiegti Python vykdydami žemiau esančią komandą:



pip install pyyaml>

YAML failai išsaugomi naudojant 2 skirtingus plėtinius, tai yra, .yaml ir .yml . Kadangi mums reikia išanalizuoti YAML failą, sukūrėme du YAML failus, kuriuos sudaro duomenys Raktas: vertė pora. Savo straipsnio pavyzdžiu paimsime šiuos YAML failus.

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>

Dabar pažiūrėkime kelis metodus, kuriais galime išanalizuoti YAML failą Python.

Naudojant funkciją load()

YAML modulio funkcija yaml.load() naudojama YAML duomenims arba objektui nuskaityti į Python žodynas . Gali būti YAML duomenų, kuriuos sudaro daugybė raktų ir reikšmių porų (konfigūracijos failų), todėl norint nuskaityti šiuos failus, funkcija load() gali būti naudinga, nes ji atlieka YAML duomenų deserializavimą į Python. The Krautuvas funkcijos load() parametras nustatytas į SafeLoader , kuri ketina saugiai įkelti YAML duomenis. Tai naudinga tais atvejais, kai įvestis paimama iš nepatikimų šaltinių.

Python3




skirtumas tarp $ ir $ $
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)>

>

>

Išvestis:

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

Naudojant full_load() funkciją

Funkcija yaml.full_load() naudojama YAML failo turiniui analizuoti raktų ir reikšmių porų pavidalu. Tada naudokite Python gauti () metodą, galime gauti konkrečius duomenis iš YAML failo.

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

>

>

Išvestis:

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

Naudojant funkciją safe_load()

Kitas būdas įkelti YAML failą į Python yra naudoti safe_load() metodą. Jis gali būti naudojamas vietoje load() metodo SafeLoader parametro, kai duomenys įkeliami iš nepatikimo šaltinio.

Python3

lapė prieš vilką




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

>

>

Išvestis:

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

Naudojant funkciją load_all()

Metodas load_all() naudojamas, kai norime įkelti YAML dokumentą, esantį viename faile. The Krautuvas funkcijos load() parametras nustatytas į SafeLoader , kuri ketina saugiai įkelti YAML duomenis. Tai naudinga tais atvejais, kai įvestis paimama iš nepatikimų šaltinių.

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

>

>

Išvestis:

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