Python如何在J中导出JSON

2024-03-28 20:37:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将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

我该怎么解决呢?在


Tags: 字符串textidjsondataparsetypejs
1条回答
网友
1楼 · 发布于 2024-03-28 20:37:43

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

var data = {{ dataJSON|safe }};

这可以防止它被HTML转义。没有必要以这种方式使用JSON.parse();JSON是一个有效的JavaScript子集(至少在Pythonjson模块生成有效子集的情况下)。在

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

^{pr2}$

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

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

这是Python代码,用于生成一个可以在HTML(包括属性值)和JavaScript中安全使用的dataJSON值。这里的积分归Flask ^{} function。在

相关问题 更多 >