【问题标题】:How to get rid of 'quot' in Python json.dumps如何摆脱 Python json.dumps 中的“quot”
【发布时间】: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。

标签: javascript python django json


【解决方案1】:

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

{{ myJson|safe }}

【讨论】:

  • 完美!这解决了问题。为了将来参考,这是我在我的 Javscript 中必须做的:console.log(JSON.parse('{{ myJson | safe }}'));
  • 是的,因为“安全”模板过滤器用于渲染 django 模板中的 html 标签
  • 在我的情况下,我不需要在交付到前端后对其进行解析。 Javascript 将其识别为一个对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
相关资源
最近更新 更多