PyYAML dump()
не имеет точного управления для различного отступа для отображений (2 позиции) и последовательностей (4 позиции), а также не может смещать индикатор последовательности (-
) в пределах пространства (последовательность) отступ).
Если вы хотите такого рода контроль над своим выводом, вы должны использовать ruamel.yaml
(отказ от ответственности: я являюсь автором этого пакета):
import sys
import ruamel.yaml
net_plan_dict = {
'networking': {
'addresses': ['192.168.1.1', '192.168.1.2', "192.168.1.3"],
'gateway4': '192.168.121.1'
}
}
yaml = ruamel.yaml.YAML()
yaml.indent(mapping=2, sequence=4, offset=2)
yaml.dump(net_plan_dict, sys.stdout)
, который дает:
networking:
addresses:
- 192.168.1.1
- 192.168.1.2
- 192.168.1.3
gateway4: 192.168.121.1