python - 在 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)
推荐阅读
- javascript - JS 异步编程中如何处理对象?删除功能的影响
- python - 无法在 tkinter 中将滚动条添加到文本小部件(包含多个框架)
- mongodb - 如何在 spring-data-mongodb 中检索文档时省略字段?
- teiid - 当我尝试在域模式下安装 teiid 时,没有打开 teiid-jdbc socket-binging portall 31000
- facebook - 手机号是唯一的,而 Facebook 登录却报错
- python - 如何删除仅包含某些值的行?
- .net-core - 在索引 .net core 3.1 项目的源文件时使用 TFS (2018) 发布符号失败
- sql - 使用标准 sql bigquery 查找数据值中的季度值
- node.js - 如何将 Node.js 服务器的 ESLint 规则与我的 Vue.js 前端的 ESLint 规则匹配?
- java - How to create a RecyclerView horizontal with a wrap_content width and not scrollable?