logo

Parseer een YAML-bestand in Python

YAML is de afkorting van Yet Another Markup Language of YAML is geen markup-taal, het gegevensformaat dat wordt gebruikt om gegevens uit te wisselen. YAML kan alleen gegevens opslaan en geen opdrachten. Het is vergelijkbaar met de XML- en JSON-gegevensformaten. In dit artikel gaan we samen met het voorbeeld diep in op het concept van het parseren van YAML-bestanden in Python.

YAML-bestanden parseren in Python

PyYAML Module in Python Programmeren wordt beschouwd als de parser voor Python. Met behulp van deze bibliotheek kunnen we verschillende bewerkingen uitvoeren op de YAML-bestanden, zoals het lezen of schrijven van de YAML-bestanden. Serialisatie en persistente YAML-gegevens kunnen ook worden gedaan met behulp van deze PyYAML-module in Python.

Voor het gebruik van de PyYAML-module moeten we deze installeren Python door het onderstaande commando uit te voeren:



pip install pyyaml>

YAML-bestanden worden opgeslagen met behulp van 2 verschillende extensies, namelijk: .yaml En .yml . Omdat we het YAML-bestand moeten parseren, hebben we twee YAML-bestanden gemaakt die bestaan ​​uit gegevens in de Sleutel waarde paar. We nemen de volgende YAML-bestanden als voorbeeld voor ons 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>

Laten we nu een paar methoden bekijken waarmee we een YAML-bestand in Python kunnen parseren.

De functie load() gebruiken

De functie yaml.load() in de YAML-module wordt gebruikt om de YAML-gegevens of het object in een Python-woordenboek . Er kunnen YAML-gegevens zijn die uit een groot aantal sleutel-waardeparen (configuratiebestanden) bestaan. Om deze bestanden te lezen kan de functie load() nuttig zijn, omdat deze de deserialisatie van YAML-gegevens naar Python uitvoert. De Lader parameter van de functie load() is ingesteld op SafeLoader , die de gegevens van YAML veilig wil laden. Dit is handig in scenario's waarin de invoer afkomstig is van niet-vertrouwde bronnen.

Python3




tekenreeks vervangen in 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)>

>

>

Uitgang:

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

De functie full_load() gebruiken

De functie yaml.full_load() wordt gebruikt om de inhoud van het YAML-bestand te parseren in de vorm van sleutel-waardeparen. Gebruik dan de Python krijgen() methode kunnen we specifieke gegevens uit het YAML-bestand halen.

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

>

>

Uitgang:

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

De functie safe_load() gebruiken

Een andere manier om het YAML-bestand in Python te laden is door de safe_load() methode te gebruiken. Het kan worden gebruikt in plaats van de SafeLoader-parameter van de methode load() wanneer de gegevens worden geladen vanuit een niet-vertrouwde bron.

Python3




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

>

>

Uitgang:

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

De functie load_all() gebruiken

De load_all() methode wordt gebruikt wanneer we een YAML-document in één bestand willen laden. De Lader parameter van de functie load() is ingesteld op SafeLoader , die de gegevens van YAML veilig wil laden. Dit is handig in scenario's waarin de invoer afkomstig is van niet-vertrouwde bronnen.

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

>

>

Uitgang:

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