映射中的yaml锚点?

映射中的yaml锚点?,yaml,config,pyyaml,Yaml,Config,Pyyaml,我基本上是在yaml文件中实现以下目标 Classroom: year: &year 5 subject: &subject Math classroom_name: classroom_*year_*subject 我的期望 'Classroom': { 'year': 5 'subject': 'Math' 'classroom_name': 'classroom_5_Math' } 当我加载它时(通过Python,但我不认

我基本上是在yaml文件中实现以下目标

Classroom:
    year: &year 5
    subject: &subject Math
    classroom_name: classroom_*year_*subject
我的期望

'Classroom': {
    'year': 5
    'subject': 'Math'
    'classroom_name': 'classroom_5_Math'
}
当我加载它时(通过Python,但我不认为这会改变什么?)

我得到的

'Classroom': {
    'year': 5
    'subject': 'Math'
    'classroom_name': 'classroom_*year_*subject'
}


我做错了什么/我该如何改进它?

我最终只是使用并定义了我自己的处理程序来处理特定的情况。我不认为它具有很强的可扩展性(不能自我引用),但我们会看到,错误在于您的期望不正确。其中明确指出:

在表示图中,一个节点可能出现在多个集合中。序列化此类数据时,节点的第一次出现由锚点标识。每个后续事件都被序列化为一个别名节点,该节点引用回该锚点

你的
课堂*year*subject
是一个节点,这个标量将作为一个字符串加载,正好有两个嵌入的星号,它们没有特殊意义,除非它们出现在标量()的开头

因此,该节点不是标量(节点)和两个别名的组合,正如您所想(希望的)。只有完整的节点才可以使用别名