问题描述
我正在使用python jinja2渲染CI / CD的一些json文件。这些文件将由用GoLang编写的应用程序使用。
变量定义为Yaml文件并使用pyymal加载。例如。
模板
{
"enable_log": {{ enable_log}}
}
变量文件:
---
us-east-2:
dev:
enable_log: true
prod:
enable_log: false
结果如下
{ "enable_log": True }
代码段:
template_env = Environment(loader=FileSystemLoader(cfg_dir),trim_blocks=True,lstrip_blocks=True,undefined=StrictUndefined)
source_template = template_env.get_template(cfg_template)
config_data = yaml.load(open(VARS))
with open(out_file,'w') as f:
data = source_template.render(config_data[region][env])
f.write(data)
我知道python布尔是True&False。但是应用程序代码(Golang)没有将其加载为布尔值。 pyyaml中是否有解决此问题的解决方法?
解决方法
这是固定的。 解决方案是使用yaml.BaseLoader
config_data = yaml.load(open(VARS),Loader=yaml.BaseLoader)