json - 如何在 jinja 模板文件中将单引号转换为双引号?
问题描述
嗨,我有一个扩展名为“.sls”的盐状态文件,它使用的是 jinja 模板
我正在 jinja 模板中创建一个列表。问题是当我运行该文件时,列表转换为 JSON,将每个元素周围的双引号转换为单引号,这会导致错误。
{%- set opentsdb_hosts = [] -%}
{%- for host in salt['pnda.opentsdb_hosts']() -%}
{%- do opentsdb_hosts.append("http://%s:%s" % (host, opentsdb_port)) -%}
{%- endfor -%}
如您所见,我正在创建一个名称为opentsdb_hosts的列表。opentsdb_hosts中的每个元素都应该有一个双引号。但它正在做单引号。
请帮忙。
解决方案
您必须使用opentsdb_hosts
直接{{ opentsdb_hosts }}
输出,它以 python 友好的格式输出,通常更喜欢单引号而不是双引号(尽管两个引号在 python 中都作为有效的字符串文字工作)。
要输出opentsdb_hosts
为 json,只需使用 salt 提供的 json 渲染器,即{{ opentsdb_hosts | tojson }}
.
推荐阅读
- debugging - 如何修复 NuxtJs 控制台错误
- html - Outlook 更改 HTML 表格间距
- python - 删除列表内列表中的最后一项,然后将值添加到列表中的列表
- linqpad - 如何使用 Entity Framework Core 将 Oracle NUMBER(1) 映射到 LinqPad 6 中的整数而不是布尔值?
- javascript - 如何在加载下一个之前淡出标签内容 div?
- windows - 如何以编程方式更改 Windows NIC 驱动程序的参数?
- node.js - 如何使用函数参数获取node.js中json文件的数据
- intellij-idea - 在 Intellij 中,返回命令每次都不起作用
- powershell - 添加 Connect-AzureAD 后不要求输入变量
- terraform - 有条件地忽略资源更新