如何摆脱 Python json.dumps 中的“quot”

Posted

技术标签:

【中文标题】如何摆脱 Python json.dumps 中的“quot”【英文标题】:How to get rid of 'quot' in Python json.dumps 【发布时间】:2013-12-22 05:04:19 【问题描述】:

在 Django 中,我有一个请求 JSON 提要并将响应与模板一起呈现的视图。我需要将 JSON 对象转换为 javascript JSON 对象。我已设法在模板中控制台记录 JSON 对象,但格式有问题。

这是我所期望的:

"lat": 58.548703, "referenceTime": "2013-12-05T07:00:00Z", "lon": 16.155116...

这就是我得到的:

"lat": 58.548703, "referenceTime": "2013-12-05T07:00:00Z", "lon": 16.155116...

这是我的看法:

def myView(request):
    request = Request('http://somedomain/somefeed.json')

    response = urlopen(request)
    data = json.load(response)
    return render_to_response('myTemplate.html', 'myJson': json.dumps(data))

在我的模板中:

console.log('myJson');

【问题讨论】:

所以也许你应该显示模板? 另外,你为什么要费心从 JSON 反序列化,只是为了立即再次序列化它?有什么意义? 使用myJson|safe @DanielRoseman 我从模板中添加了 sn-p。 【参考方案1】:

正如 Armance 在 cmets 中所说,您需要在模板中将变量标记为安全,这样它就不会被转义:

 myJson|safe 

【讨论】:

完美!这解决了问题。为了将来参考,这是我在我的 Javscript 中必须做的:console.log(JSON.parse(' myJson | safe ')); 是的,因为“安全”模板过滤器用于渲染 django 模板中的 html 标签 在我的情况下,我不需要在交付到前端后对其进行解析。 Javascript 将其识别为一个对象。

以上是关于如何摆脱 Python json.dumps 中的“quot”的主要内容,如果未能解决你的问题,请参考以下文章

python中的json.dump()和json.dumps()有啥区别?

python中json模块dumps和loads的区分

[转]python json.dumps 中的ensure_ascii 参数引起的中文编码

python json.dumps 中的ensure_ascii 参数引起的中文编码问题

python json.dumps 中的ensure_ascii 参数引起的中文编码问题

python中的dumps和loads区别