Javascript 如何使Jinja2中的tojson()过滤器输出Unicode而不是转义序列?
我的模板用于JSJavascript 如何使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
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中安全使用,无需额外转义