我试图加载一个jinja2格式的yaml文件并“评估”/“呈现”模板。下面是一个例子:
{% set name = "pyexcel-ezodf" %}
{% set version = "0.3.3" %}
package:
name: {{ name|lower }}
version: {{ version }}
我希望能够加载yaml文件并说yaml['package']['version']=0.3.3
我不得不尝试ruamelyaml,但它不评估版本只给我一个包。在
这里是python代码:
^{pr2}$
Tags:
不确定
ruamel.yaml
,但您可以轻松地使用jinja2
包和pyyaml
包执行您想要的操作:该输出:
^{pr2}$我不知道你有什么完整的例子,但这里是我要做的。如果我没弄错,你想加载一个jinja文件,然后通过
^{pr2}$ruamel.yaml
包获取值结果:
关于使用
typ='jinja2'
,ruamel
不支持,除非您有一些自定义设置,如下所示:通过传递给
ruamel.yaml
'YAML()
实例的typ='jinja2'
参数为YAML加载jinja2模板,以便从模板中生成有效的YAML,因此您可以修改模板,将其视为有效的YAML并将其写回。它不进行任何模板渲染,也不在文档中的任何地方声明这样做。在您需要做的是首先使用jinja2呈现模板,然后加载该值(您可以使用fast
yaml = YAML(typ='safe')
选项)。在例如,您可以做如下操作:
相关问题 更多 >
编程相关推荐