YAML to skrót od Yet Another Markup Language lub YAML nie jest językiem znaczników, który jest formatem danych używanym do wymiany danych. YAML może przechowywać tylko dane, bez poleceń. Jest podobny do formatów danych XML i JSON. W tym artykule zagłębimy się w koncepcję analizowania plików YAML w Pythonie wraz z przykładem.
Parsowanie plików YAML w Pythonie
PyYAML Moduł w programowaniu w Pythonie jest uważany za parser dla Pythona. Korzystając z tej biblioteki, możemy wykonywać różne operacje na plikach YAML, takie jak odczytywanie lub zapisywanie plików YAML. Serializację i utrwalanie danych YAML można również wykonać za pomocą tego modułu PyYAML w Pythonie.
Aby móc korzystać z modułu PyYAML, musimy go zainstalować Pyton wykonując poniższe polecenie:
pip install pyyaml>
Pliki YAML są zapisywane przy użyciu 2 różnych rozszerzeń, tj. .yaml I .yml . Ponieważ musimy przeanalizować plik YAML, stworzyliśmy dwa pliki YAML, które składają się z danych w Kluczowa wartość para. Jako przykład w naszym artykule weźmiemy następujące pliki 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>
Przyjrzyjmy się teraz kilku metodom, za pomocą których możemy analizować plik YAML w Pythonie.
Korzystanie z funkcji Load().
Funkcja yaml.load() w module YAML służy do wczytywania danych lub obiektu YAML do Słownik Pythona . Mogą istnieć dane YAML składające się z ogromnej liczby par klucz-wartość (pliki konfiguracyjne), więc do odczytania tych plików pomocna może być funkcja loading(), która wykonuje deserializację danych YAML do Pythona. The Ładowarka parametr funkcji Load() jest ustawiony na SafeLoader , który zamierza bezpiecznie załadować dane YAML. Jest to przydatne w scenariuszach, w których dane wejściowe pochodzą z niezaufanych źródeł.
Python3
aktor chiranjeevi
import> yaml> with> open> (> 'geeksforgeeks.yml'> ,> 'r'> ) as f:> > data> => yaml.load(f, Loader> => yaml.SafeLoader)> > # Print the values as a dictionary> print> (data)> |
>
>
Wyjście:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890, 'Website': 'techcodeview.com>
Korzystanie z funkcji full_load().
Funkcja yaml.full_load() służy do analizowania zawartości pliku YAML w postaci par klucz-wartość. Następnie użyj Pythona Dostawać() metodą możemy uzyskać określone dane z pliku 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)> |
>
>
Wyjście:
{'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'}>
Korzystanie z funkcji Safe_load().
Innym sposobem załadowania pliku YAML w Pythonie jest użycie metodysafe_load(). Można go użyć zamiast parametru SafeLoader metody Load(), gdy dane są ładowane z niezaufanego źródła.
Python3
leksykograficznie
import> yaml> with> open> (> 'geeksforgeeks.yml'> ) as f:> > dict> => yaml.safe_load(f)> > print> (> dict> )> |
>
>
Wyjście:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890, 'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}>
Korzystanie z funkcji Load_all().
Metodę loading_all() stosujemy, gdy chcemy załadować dokument YAML znajdujący się w pojedynczym pliku. The Ładowarka parametr funkcji Load() jest ustawiony na SafeLoader , który zamierza bezpiecznie załadować dane YAML. Jest to przydatne w scenariuszach, w których dane wejściowe pochodzą z niezaufanych źródeł.
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)> |
>
>
Wyjście:
[{'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'}]>