YAML er forkortelsen av Yet Another Markup Language eller YAML ain't markup Language som er dataformatet som brukes til å utveksle data. YAML kan bare lagre data og ingen kommandoer. Det ligner på XML- og JSON-dataformatene. I denne artikkelen vil vi dykke dypt inn i konseptet med å analysere YAML-filer i Python sammen med eksemplet.
Parsing av YAML-filer i Python
PyYAML Modul i Python-programmering regnes som Parser for Python. Ved å bruke dette biblioteket kan vi utføre forskjellige operasjoner på YAML-filene som å lese eller skrive YAML-filene. Serialisering og vedvarende YAML-data kan også gjøres ved å bruke denne PyYAML-modulen i Python.
For bruk av PyYAML-modulen må vi installere den i Python ved å utføre kommandoen nedenfor:
pip install pyyaml>
YAML-filer lagres med 2 forskjellige utvidelser, det vil si, .yaml og .yml . Ettersom vi trenger å analysere YAML-filen, har vi laget to YAML-filer som består av data i Nøkkel: Verdi par. Vi vil ta følgende YAML-filer som eksempel for artikkelen vår.
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>
La oss nå se noen få metoder som vi kan bruke til å analysere en YAML-fil i Python.
Bruker load()-funksjonen
Funksjonen yaml.load() i YAML-modulen brukes til å lese YAML-dataene eller -objektet inn i en Python ordbok . Det kan være YAML-data som består av et stort antall nøkkelverdi-par (konfigurasjonsfiler), så for å lese disse filene kan load()-funksjonen være nyttig når den utfører deserialisering av YAML-data til Python. De Laster parameter for load()-funksjonen er satt til SafeLoader , som har til hensikt å laste dataene til YAML trygt. Dette er nyttig i scenarier der innspillet er hentet fra ikke-klarerte kilder.
Python3
dobbel til streng java
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)> |
>
>
Produksjon:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890, 'Website': 'techcodeview.com> Bruker full_load() funksjon
Funksjonen yaml.full_load() brukes til å analysere innholdet i YAML-filen i form av nøkkelverdi-par. Bruk deretter Python få() metode, kan vi få spesifikke data fra 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)> |
>
>
Produksjon:
{'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'}> Bruker safe_load()-funksjonen
En annen måte å laste YAML-filen i Python er ved å bruke safe_load()-metoden. Den kan brukes i stedet for load()-metodens SafeLoader-parameter, når dataene lastes fra en ikke-klarert kilde.
Python3
import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)> |
'abc' er i tall'
>
>
Produksjon:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890, 'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}> Bruker load_all()-funksjonen
load_all()-metoden brukes når vi ønsker å laste et YAML-dokument som finnes i en enkelt fil. De Laster parameter for load()-funksjonen er satt til SafeLoader , som har til hensikt å laste dataene til YAML trygt. Dette er nyttig i scenarier der innspillet er hentet fra ikke-klarerte kilder.
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)> |
>
>
Produksjon:
[{'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'}]>