多行中的 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'])
在标量中的任何地方找到转义字符并采取适当的行动。
我正在尝试获取多行注释以在 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'])
在标量中的任何地方找到转义字符并采取适当的行动。