处理pyyaml中的布尔值

问题描述

我正在使用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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...