【问题标题】:How to convert single quote into double quote in jinja template file?如何在 jinja 模板文件中将单引号转换为双引号?
【发布时间】:2018-10-17 00:51:34
【问题描述】:

您好,我有一个扩展名为“.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 中的每个元素都应该有一个双引号。但它是在做单引号。

请帮忙。

【问题讨论】:

    标签: json templates jinja2 salt-stack


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用regex_replace("'", '"') 将单引号替换为双引号

      【讨论】:

      • 这种情况下是否需要依赖Regex?
      • @JeremyCaney 不是强制性的,但这是与 Jinja 模板一起使用的简单解决方案(根据此特定查询/场景的解决方案)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 2015-08-01
      • 2018-11-18
      • 2017-06-19
      • 1970-01-01
      相关资源
      最近更新 更多