У меня есть файл test.yaml с содержимым:
school_ids:
school1: "001"
#important school2
school2: "002"
targets:
neighborhood1:
schools:
- school1-paloalto
teachers:
- 33
neighborhood2:
schools:
- school2-paloalto
teachers:
- 35
Я хочу использовать ruamel для обновления файла, чтобы он выглядел так:
school_ids:
school1: "001"
#important school2
school2: "002"
school3: "003"
targets:
neighborhood1:
schools:
- school1-paloalto
teachers:
- 33
neighborhood2:
schools:
- school2-paloalto
teachers:
- 35
neighborhood3:
schools:
- school3-paloalto
teachers:
- 31
Как мне использовать ruamel для обновления файла, чтобы получить желаемый результат, сохранив комментарии?
Вот что у меня есть до сих пор:
import sys
from ruamel.yaml import YAML
inp = open('/targets.yaml', 'r').read()
yaml = YAML()
code = yaml.load(inp)
account_ids = code['school_ids']
account_ids['new_school'] = "003"
#yaml.dump(account_ids, sys.stdout)
targets = code['targets']
new_target = dict(neighborhood3=dict(schools=["school3-paloalto"], teachers=["31"]))
yaml = YAML()
yaml.indent(mapping=2, sequence=3, offset=2)
yaml.dump(new_target, sys.stdout)