Если ваш файл YAML выглядит так:
# tree format
treeroot:
branch1:
name: Node 1
branch1-1:
name: Node 1-1
branch2:
name: Node 2
branch2-1:
name: Node 2-1
И вы установили PyYAML
так:
pip install PyYAML
И код Python выглядит следующим образом:
import yaml
with open('tree.yaml') as f:
# use safe_load instead load
dataMap = yaml.safe_load(f)
Переменная dataMap
теперь содержит словарь с данными дерева.Если вы напечатаете dataMap
с помощью PrettyPrint, вы получите что-то вроде:
{'treeroot': {'branch1': {'branch1-1': {'name': 'Node 1-1'},
'name': 'Node 1'},
'branch2': {'branch2-1': {'name': 'Node 2-1'},
'name': 'Node 2'}}}
Итак, теперь мы увидели, как получить данные в нашу программу Python.Сохранение данных так же просто:
with open('newtree.yaml', "w") as f:
yaml.dump(dataMap, f)
У вас есть словарь, и теперь вам нужно преобразовать его в объект Python:
class Struct:
def __init__(self, **entries):
self.__dict__.update(entries)
Затем вы можете использовать:
>>> args = your YAML dictionary
>>> s = Struct(**args)
>>> s
<__main__.Struct instance at 0x01D6A738>
>>> s...
и следуйте инструкциям « Преобразовать Python dict в объект ».
Для получения дополнительной информации вы можете посмотреть pyyaml.org и this .