我用rancher,当rancher-compose输入$时,无法创建堆栈
- variable: vzdb_rule
description: "this line will use regular expression in rancher-compose.yml"
label: "regular expression"
default: ^$
required: true
type: "string"
你不需要 escape $
,它不是 YAML 中的保留字符。
您的示例不是正确的 YAML 文件,如果它们是相同映射的键(它们是) ,则不能以description
不同的方式缩进。variable
如果您对齐键,则加载正常:
import ruamel.yaml
from ruamel.yaml.util import load_yaml_guess_indent
yaml_str = """\
- variable: vzdb_rule
description: "In line with the rules of the real-time encoding library of regular expressions"
label: "实时库编码规则1"
default: ^$
required: false
type: "string"
"""
data = ruamel.yaml.round_trip_load(yaml_str)
print(ruamel.yaml.round_trip_dump(data))
给出:
- variable: vzdb_rule
description: In line with the rules of the real-time encoding library of regular expressions
label: 实时库编码规则1
default: ^$
required: false
type: string
如果我理解正确,您将希望使用它
$$
来获取$
最终的 yaml 文件。例如,在 rancher compose 中,我们有带有${stack_name}/${service_name}
.. 的标签,它们看起来像:
$${stack_name}/$${service_name}