多行中的 PyYAML 变量

PyYAML variables in multiline

我正在尝试获取多行注释以在 PyYAML 中使用变量,但不确定这是否可行。

因此,在 YAML 中,您可以分配一个变量,例如:

  current_host: &hostname myhost

但是在下面好像没有展开:

test: |
    Hello, this is my string
    which is running on *hostname

这是完全可能的还是我必须使用 Python 来解析它?

你可以找到答案here

只需在行之间使用 +,您的字符串需要包含在 ' 中。

锚点 (&some_id) 和引用 (*some_id) 机制本质上是为了在 YAML 文本的树表示部分之间提供 share complete nodes 的可能性。这是例如为了让一个和相同的复杂项目(sequence/list resp. mapping/dict)在列表中两次加载为一个和相同的项目(而不是具有相同值的两个副本)是必要的。

所以是的,您需要在 Python 中进行解析。您可以从我提供的机制 in this answer 开始,然后更改测试

   if node.value and node.value.startswith(self.d['escape'])

在标量中的任何地方找到转义字符并采取适当的行动。