YAML — це абревіатура від Yet Another Markup Language або YAML ain’t markup Language, тобто формат даних, який використовується для обміну даними. YAML може зберігати лише дані і жодних команд. Він подібний до форматів даних XML і JSON. У цій статті ми детально зануримося в концепцію розбору файлів YAML у Python разом із прикладом.
Розбір файлів YAML у Python
PyYAML Модуль у програмуванні на Python розглядається як парсер для Python. Використовуючи цю бібліотеку, ми можемо виконувати різні операції з файлами YAML, наприклад читати або записувати файли YAML. Серіалізацію та збереження даних YAML також можна виконати за допомогою цього модуля PyYAML у Python.
Щоб використовувати модуль PyYAML, нам потрібно його встановити Python виконавши наведену нижче команду:
pip install pyyaml>
Файли YAML зберігаються з використанням 2 різних розширень, тобто .yaml і .yml . Оскільки нам потрібно розібрати файл YAML, ми створили два файли YAML, які складаються з даних у Ключ: Значення пара. Як приклад для нашої статті ми візьмемо наступні файли 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>
Тепер давайте розглянемо кілька методів, за допомогою яких ми можемо розібрати файл YAML у Python.
Використання функції load().
Функція yaml.load() у модулі YAML використовується для читання даних або об’єкта YAML у Словник Python . Дані YAML можуть складатися з величезної кількості пар ключ-значення (конфігураційні файли), тому для читання цих файлів може бути корисною функція load(), оскільки вона виконує десеріалізацію даних YAML у Python. The Навантажувач параметр функції load() має значення SafeLoader , який має намір безпечно завантажити дані YAML. Це корисно в сценаріях, коли дані беруться з ненадійних джерел.
Python3
виняток нульового покажчика
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)> |
>
>
Вихід:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890, 'Website': 'techcodeview.com> Використання функції full_load().
Функція yaml.full_load() використовується для аналізу вмісту файлу YAML у формі пар ключ-значення. Потім за допомогою Python отримати() метод, ми можемо отримати конкретні дані з файлу 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)> |
>
>
Вихід:
{'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'}> Використання функції safe_load().
Ще один спосіб завантажити файл YAML у Python — це використати метод safe_load(). Його можна використовувати замість параметра SafeLoader методу load(), коли дані завантажуються з ненадійного джерела.
Python3
import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)> |
>
лексикографічно
>
Вихід:
{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890, 'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}> Використання функції load_all().
Метод load_all() використовується, коли ми хочемо завантажити документ YAML в одному файлі. The Навантажувач параметр функції load() має значення SafeLoader , який має намір безпечно завантажити дані YAML. Це корисно в сценаріях, коли дані беруться з ненадійних джерел.
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)> |
>
>
Вихід:
[{'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'}]>