logo

Parse en YAML-fil i Python

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