多行中的PyYAML变量

时间:2015-06-09 08:18:46

标签: python yaml pyyaml

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

因此,在YAML中,您可以指定一个变量,如:

  current_host: &hostname myhost

但它似乎没有扩展如下:

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

这是完全可能还是我将不得不使用Python来解析它?

2 个答案:

答案 0 :(得分:3)

锚点(&some_id)和引用(*some_id)机制本质上是为了在树表示的YAML文本部分之间提供share complete nodes的可能性。这是例如为了使一个相同的复杂项目(序列/列表和映射/字典)在列表中出现两次加载为一个相同的项目(而不是具有相同值的两个副本)。

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

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

在标量中的任何位置找到转义字符并采取适当的操作。

答案 1 :(得分:-2)

您可以找到答案here

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