Сообщить об ошибке.

Модуль PyYAML, парсер YAML для Python

Синтаксический анализатор (парсер) YAML для Python

Язык разметки YAML - это удобный для людей стандарт сериализации данных, предназначенный для удобства чтения человеком и взаимодействия со скриптовыми языками, ориентированный на удобство ввода-вывода типичных структур данных. Разметка YAML часто используется для написания конфигурационных файлов.

Модуль pyyaml - это синтаксический анализатор языка разметки YAML 1.1 для Python, имеет поддержку pickle, способный к расширению API. PyYAML поддерживает стандартные теги YAML и предоставляет специфичные для Python теги, которые позволяют представлять произвольный объект Python.

Модуль PyYAML применим для широкого спектра задач - от сложных конфигурационных файлов до сериализации объектов и персистентности. Официальным рекомендуемым расширением имени файла для файлов YAML является .yaml. Дополнительно смотрите "Синтаксис документа YAML"

Установка модуля PyYAML в виртуальное окружение:

# создаем виртуальное окружение, если нет
$ python3 -m venv .venv --prompt VirtualEnv
# активируем виртуальное окружение 
$ source .venv/bin/activate
# ставим модуль pyyaml
(VirtualEnv):~$ python -m pip install -U pyyaml

Загрузка/чтение документа YAML в Python

Можно прочитать документ YAML с помощью функции yaml.load() модуля PyYAML. Эта функция анализирует и преобразует объект YAML в словарь dict Python. Этот процесс известен как десериализация YAML в Python.

Загрузка нескольких документов YAML в Python

Функция yaml.load_all() анализирует данные и возвращает последовательность объектов Python, соответствующих документам YAML.

Загрузка экземпляров классов Python из YAML

При помощи модуля PyYAML, используя в документе YAML тег !!python/object, могут быть загружены и созданы экземпляры классов Python. Так же рассмотрена безопасная загрузка классов при помощи функции Функция yaml.safe_load().

Сохранение/сериализация различных типов Python в файл YAML

Для сериализации объекта Python в поток YAML необходимо использовать функцию yaml.dump(data, stream) модуля PyYAML. кроме того, можно использовать функцию yaml.safe_dump(data, stream), которая не поддерживает произвольные объекты Python.

Сохранение классов Python в документ YAML

Модуль PyYAML позволяет выгружать/сохранять экземпляры пользовательских классов Python в поток YAML. Можно определить свои собственные теги для документа YAML для конкретного приложения. Самый простой способ сделать это - определить подкласс yaml.YAMLObject

Синтаксис документа YAML для Python

В разделе представлен общий синтаксис разметки документа YAML, а так же наиболее распространенные конструкции YAML вместе с соответствующими объектами Python.