json.dumps return 在烧瓶视图中无效 json

json.dumps return invalid json in flask view

我有一个简单的代码:

products_list: list = [{"product_name": "product #1"}, {"product_name": "product #2"}]
return render_template('index.html', data=json.dumps(products_list))

我的索引模板:

<body>
    <script>
        console.log({{ data }});
    </script>
</body>

但是在页面上我得到了一个 invalid json 包含 ", #1" 个字符。

 console.log([{&#34;product_name&#34;: &#34;product #1&#34;}, {&#34;product_name&#34;: &#34;product #2&#34;}]);

为什么会这样?

这里的问题是 flask 将 JSON 中的引号转义为 &#34;。您可以通过将 |safe 过滤器添加到您的模板来禁用此功能。

因此您的 HTML 将是:

<body>
    <script>
        console.log({{ data|safe }});
    </script>
</body>

Related Question