首页 > 解决方案 > 如何在 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中的每个元素都应该有一个双引号。但它正在做单引号。

请帮忙。

标签: jsontemplatesjinja2salt-stack

解决方案


您必须使用opentsdb_hosts直接{{ opentsdb_hosts }}输出,它以 python 友好的格式输出,通常更喜欢单引号而不是双引号(尽管两个引号在 python 中都作为有效的字符串文字工作)。

要输出opentsdb_hosts为 json,只需使用 salt 提供的 json 渲染器,即{{ opentsdb_hosts | tojson }}.


推荐阅读