Это совершенно действительный YAML.Проблема в PyYAML.Как и все другие YAML-процессоры, которые не могут загрузить это, о чем я знаю, он может анализировать этот YAML без проблем (и составлять , если процессор реализует этот шаг), но завершиться с ошибкой во время создание шага процесса загрузки.
Если вы используете ruamel.yaml
(отказ от ответственности: я являюсь автором этого пакета) и у вас есть входные данные в файле input.yaml
:
import sys
from pathlib import Path
import ruamel.yaml
file_name = Path('input.yaml')
yaml = ruamel.yaml.YAML()
data = yaml.load(file_name)
print(data['base::files'][('/apps/ecert-public', '/apps/ecert-public/config', '/apps/ecert-public/releases')]['ensure'])
print('\n-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-\n')
yaml.dump(data, sys.stdout)
дает:
directory
-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-
base::files:
/var/log/fpm:
ensure: directory
mode: '777'
/etc/nginx/ssl/cert:
ensure: directory
/apps:
ensure: directory
owner: user
group: user
[/apps/ecert-public, /apps/ecert-public/config, /apps/ecert-public/releases]:
ensure: directory
owner: user
group: user
[/apps/site-public, /apps/site-public/config, /apps/site-public/releases]:
ensure: directory
owner: user
group: user