Предполагая, что вы используете PyYAML, как вы, вероятно, выводите, что вы выводите , а не копирование-вставка того, что yaml.dump()
сгенерировано, поскольку оно содержит комментарий, а PyYAML их не пишет.
Если вы хотите сохранить этот комментарий, а также, например, порядок ключей в файле (хорошо, когда вы сохраняете файл в системе контроля версий), используйте ¹:
import ruamel.yaml as yaml
yaml_str = """\
# tree format
treeroot:
branch1:
name: Node 1
branch1-1:
name: Node 1-1 # should be its own level
branch2:
name: Node 2
branch2-1:
name: Node 2-1
"""
data = yaml.load(yaml_str, Loader=yaml.RoundTripLoader)
print yaml.dump(data, Dumper=yaml.RoundTripDumper, indent=4)
, который получает точно вход:
# tree format
treeroot:
branch1:
name: Node 1
branch1-1:
name: Node 1-1 # should be its own level
branch2:
name: Node 2
branch2-1:
name: Node 2-1
¹ Это было сделано с использованием ruamel.yaml расширенной версии PyYAML, автором которой я являюсь.