繁体   English   中英

Python - 如何在 JS 中导出 JSON

[英]Python - How to export JSON in JS

我想将python中的JSON字符串导出到JS变量中。

<script type="text/javascript">
    var data = JSON.parse('{{ dataJSON }}');
    console.log(data)
</script>

如果我打印dataJSON的内容,我会得到: [{"offset":0,"total":1,"units":[{"village_id":37,"village_name":"Glim

但在 JS 中我得到了这个: JSON.parse('[{&#34;offset&#34;:0,&#34;total&#34;:1,&#34;units&#34;:[{&#34;village_id&#34;:37

我使用 jinja2 模板引擎: http : //jinja.pocoo.org/docs/dev/templates/#if

我该如何解决?

您需要将数据标记为安全:

var data = {{ dataJSON|safe }};

这可以防止它被 HTML 转义。 没有必要以这种方式使用JSON.parse() JSON 是有效的 JavaScript 子集(至少在 Python json模块生成有效子集的范围内)。

考虑到这并不使它成为JavaScript 安全的 您可能想要调整您的 JSON 序列化。 如果您使用 Flask,则会提供一个tojson过滤器,以确保您获得 JavaScript 安全的有效 JSON:

var data = {{ data|tojson|safe }};

如果您不使用 Flask,请对 JSON 进行后处理:

dataJSON = (json.dumps(data)
    .replace(u'<', u'\\u003c')
    .replace(u'>', u'\\u003e')
    .replace(u'&', u'\\u0026')
    .replace(u"'", u'\\u0027'))

这是用于生成可在 HTML(包括属性值)和 JavaScript 中安全使用的dataJSON值的 Python 代码。 此处json.htmlsafe_dumps() Flask json.htmlsafe_dumps()函数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM