Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使Jinja2中的tojson()过滤器输出Unicode而不是转义序列?_Javascript_Python 3.x_Unicode_Jinja2 - Fatal编程技术网

Javascript 如何使Jinja2中的tojson()过滤器输出Unicode而不是转义序列?

Javascript 如何使Jinja2中的tojson()过滤器输出Unicode而不是转义序列?,javascript,python-3.x,unicode,jinja2,Javascript,Python 3.x,Unicode,Jinja2,我的模板用于JS let SETTINGS = {{settings|tojson(4)}}; 我的设置是一个dict{'name':'rusian nameСааa','id':12345}。如果我渲染它,我会得到: let SETTINGS = { "name": "Russian name \u0421\u0430\u0448\u0430", "id": 12345 } 我需要获取非转义unicode字符。与我在python中使用 json.dumps(data, en

我的模板用于JS

let SETTINGS = {{settings|tojson(4)}};
我的设置是一个dict
{'name':'rusian nameСааa','id':12345}
。如果我渲染它,我会得到:

let SETTINGS = {
    "name": "Russian name \u0421\u0430\u0448\u0430",
    "id": 12345
}
我需要获取非转义unicode字符。与我在python中使用

json.dumps(data, encure_ascii=False)
但是
tojson()
过滤器只接受一个参数(缩进)

发现为
tojson()
过滤器提供rest参数

从Jinja 2.9开始,可以在对过滤器和其他模板构造的行为有轻微影响的环境中进行配置。可以使用“策略”属性对其进行配置

我所要做的就是:

env = jinja2.Environment()
env.policies['json.dumps_kwargs'] = {'ensure_ascii': False, 'sort_keys': True}
此修改的环境不会转义unicode符号

结果可以在JS中安全使用,无需额外转义