【问题标题】:How to extract a value from a Python dictionary using Javascript?如何使用 Javascript 从 Python 字典中提取值?
【发布时间】:2016-11-26 16:59:06
【问题描述】:

我有一个看起来像这样的 Python 字典...

{u'reason': u'invalidQuery', u'message': u'Encountered " <ID> "asd "" at line 1, column 1.\nWas expecting:\n    <EOF> \n    ', u'location': u'query'}

如何使用 Javascript 访问 u'message' 值?它通过 Django REST Framework 传递到前端,不应该自动将其转换为 JSON 对象吗?这不是……

【问题讨论】:

  • Javascript 没有这样的语法。所有字符串始终是 Unicode。

标签: javascript python dictionary unicode key


【解决方案1】:

在views.py中

import json

json_object = json.dumps(your_object)

在 .html/.js 中

var json_object = {{json_object|safe}};

.py 端将其转换为有效的 JSON 对象。 html中的标签转义无效的json字符,如“&”

如果您将对象作为字符串发送到模板,则必须通过 JSON 再次将其转换为 JSON,例如:

JSON.parse("{{json_object}}");

或者如果对象是 Django 视图级别的字符串或 Python 字典:

json.loads(your_string)

将其转换为 json 对象

【讨论】:

  • 我刚刚用更多信息扩展了我的答案。如果你不能让它工作你有一个不同的问题,因为我刚刚使用 json.dumps({u'reason': u'invalidQuery', u'message': u'Encountered " "asd " 测试了这个过程" 在第 1 行第 1 列。\n期待:\n \n ', u'location': u'query'});它有效
  • 所以这实际上不起作用,因为显然“对象”实际上是一个字符串。有没有办法将一个对象字符串变成一个对象?
  • json.loads(your_string) 将字符串转换为视图中的json对象
【解决方案2】:

这不是一个有效的 JavaScript 对象。

【讨论】:

  • 如何将它转换为 json 对象?它是从 Django Rest Framework 发送到 javascript 的字典对象。
  • Django Rest 应该首先将其作为有效的 JSON 对象。否则,您可以将其字符串化、重新映射和评估为对象 - 但这不是一个好的解决方案。
猜你喜欢
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 2022-01-09
  • 2011-10-23
  • 1970-01-01
  • 2022-01-25
相关资源
最近更新 更多