在Django视图中,我生成的数据集如下:
data = [22, 23, 18, 19, 21, None, 22, 20]
我使用以下方法将此数据传递给JavaScript变量:
data_json = simplejson.dumps(data)
用于High Charts脚本。
不幸的是,JavaScript在遇到None
值时遇到了绊脚石,因为实际上我需要的是null
。我怎样才能最好用None
替换null
,在Django View或JavaScript中我应该在哪里处理?
答案 0 :(得分:19)
如果您使用的是Python 2.6或更高版本,则可以使用内置的json模块:
>>> import json
>>> json.dumps([1, 2, 3, None, 4])
'[1, 2, 3, null, 4]'
答案 1 :(得分:0)
当我尝试接受的解决方案json.dumps()
时,返回的是NaN值,而不是JavaScript正在寻找的null。因此,我找到了另一个不使用json或simplejson包的解决方案。以下解决方案在Django中使用None的类型检查。可以启发我的解决方案https://doc.qt.io/qt-5/qtnetworkauth-redditclient-example.html。
我在代码中使用它的方式如下,以正确填充Javascript数组:
[
{% for val in data %}
{% if val is none %}
null,
{% else %}
{{ val }},
{% endif %}
{% endfor %}
],
Django中的none对象将检查python提供的None值。它似乎不能正确处理np.NaN对象。