logo

Analyzujte soubor YAML v Pythonu

YAML je zkratka Yet Another Markup Language nebo YAML není značkovací jazyk, což je datový formát používaný k výměně dat. YAML může ukládat pouze data a žádné příkazy. Je podobný datovým formátům XML a JSON. V tomto článku se společně s příkladem ponoříme hluboko do konceptu analýzy souborů YAML v Pythonu.

Analýza souborů YAML v Pythonu

PyYAML Modul v Python Programming je považován za analyzátor pro Python. Pomocí této knihovny můžeme provádět různé operace se soubory YAML, jako je čtení nebo zápis souborů YAML. Serializaci a zachování dat YAML lze také provést pomocí tohoto modulu PyYAML v Pythonu.

Abychom mohli používat modul PyYAML, musíme jej nainstalovat Krajta provedením níže uvedeného příkazu:



pip install pyyaml>

Soubory YAML se ukládají pomocí 2 různých přípon, tj. .yaml a .yml . Protože potřebujeme analyzovat soubor YAML, vytvořili jsme dva soubory YAML, které se skládají z dat v Klíč: Hodnota pár. Jako příklad pro náš článek použijeme následující soubory YAML.

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>

Nyní se podívejme na několik metod, pomocí kterých můžeme analyzovat soubor YAML v Pythonu.

Použití funkce load().

Funkce yaml.load() v modulu YAML se používá ke čtení dat nebo objektu YAML do Slovník Pythonu . Mohou existovat data YAML, která se skládají z velkého počtu párů klíč-hodnota (konfigurační soubory), takže pro čtení těchto souborů může být užitečná funkce load(), protože provádí deserializaci dat YAML do Pythonu. The Nakladač parametr funkce load() je nastaven na SafeLoader , která má v úmyslu bezpečně načíst data YAML. To je užitečné ve scénářích, kde je vstup převzat z nedůvěryhodných zdrojů.

Python3




příkaz cp v linuxu
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)>

>

>

Výstup:

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

Použití funkce full_load().

Funkce yaml.full_load() se používá k analýze obsahu souboru YAML ve formě párů klíč-hodnota. Poté pomocí Pythonu dostat() můžeme získat konkrétní data ze souboru YAML.

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

>

>

Výstup:

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

Použití funkce safe_load().

Dalším způsobem, jak načíst soubor YAML v Pythonu, je použití metody safe_load(). Lze jej použít místo parametru SafeLoader metody load() při načítání dat z nedůvěryhodného zdroje.

Python3




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

>

>

řazení seznamu java

Výstup:

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

Použití funkce load_all().

Metoda load_all() se používá, když chceme načíst dokument YAML přítomný v jediném souboru. The Nakladač parametr funkce load() je nastaven na SafeLoader , která má v úmyslu bezpečně načíst data YAML. To je užitečné ve scénářích, kde je vstup převzat z nedůvěryhodných zdrojů.

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

>

>

Výstup:

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