Если мы хотим изменить вывод yaml.dump, мы можем использовать ключевое слово tranform. Документация: https://yaml.readthedocs.io/en/latest/example.html
Вот данные yaml:
metadata:
name: name
alias: alias
они хранятся в переменной x.
x = 'metadata:\n name: name\n alias: alias\n'
def tr(s):
return s.replace('\n', '\n ') # Want 4 space at each new line
from ruamel.yaml import YAML
from ruamel.yaml.compat import StringIO
yaml = YAML(typ="safe")
yaml.default_flow_style = False
stream = StringIO()
obj = yaml.load(x)
yaml.dump(obj, stream, transform=tr)
print(stream.getvalue())
При работе выше python script, Получил эту ошибку: TypeError: требуется байтоподобный объект, а не 'str'
Ожидаемый вывод:
metadata:
name: name
alias: alias
Примечание: Еще 4 пробела добавляются в каждой строке
Версия Подробности настройки:
Python: 3.7
ruamel.yaml: 0.15.88