用Python生成易读的JSON格式,以便JavaScript可以解析。

9
我的视图计算一个json并输出json.dumps(),然后将其作为字典键data传递。我试图将其传递给模板中的脚本元素,但在渲染时,浏览器将其作为python转义字符串{"nodes": [{"count":......接收,这对JavaScript来说不可读。我需要的是Python将其发送为JS转义字符串,类似于这样{"nodes": [{"count":......
我尝试了str(data)eval(data),但都没有成功。基本上,我需要Python像将其打印到控制台一样发送该字符串。谢谢。

这个问题对你有帮助吗?https://dev59.com/pHM_5IYBdhLWcg3wSA8U - Otto Allmendinger
我认为,如果您将其呈现到HTML模板中,并且此HTML模板将使用MIME类型“text / html”(或其变体)发送到浏览器,则浏览器将转义引号等内容,因此我认为它确实取决于您发送到浏览器的MIME类型。 - mouad
3个回答

15

如果我理解的没错,你想在模板中使用JSON。为了实现这一点,你需要禁用转义,例如像这样。

{% autoescape off %}
var x={{json_var}}
{% endautoescape %}

12

请注意,与其使用

{% autoescape off %}
    {{ my_json }}
{% endautoescape %}

你可以简单地使用一个过滤器:

{{ my_json|safe }}

1
这对我有效:
return HttpResponse(json.dumps({'foo' : 'bar'}, ensure_ascii=False),
    mimetype='application/json')

在发送简单的HttpResponse时,我会使用类似这样的东西,但在这种情况下,我必须呈现一个模板。 - leonsas
没问题。很高兴答案很简单。 - Brandon Taylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接