首页 > 解决方案 > 递归定义 YAML 映射

问题描述

是否有一种简单的方法可以在 yaml 中定义映射,使得值本身在 yaml.xml 中定义。例如

alice:
  name: Alice

bob:
  manager: *alice 

这样映射到mangager键的值bobalice对象,而不是字符串。这样一旦文件被解析,我就可以做类似的事情

>>> data = yaml.load(file_path)
>>> alice, bob = data["alice"], data["bob"]
>>> bob.manager is alice
True

标签: yamlpyyamlruamel.yaml

解决方案


您只需为要引用的对象提供一个锚点:

alice: &alice
  name: Alice

bob:
  manager: *alice 

推荐阅读