将Python None转换为JavaScript null

时间:2012-03-30 16:53:53

标签: javascript python django

在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中我应该在哪里处理?

2 个答案:

答案 0 :(得分:19)

如果您使用的是Python 2.6或更高版本,则可以使用内置的json模块:

>>> import json
>>> json.dumps([1, 2, 3, None, 4])
'[1, 2, 3, null, 4]'

请参阅http://docs.python.org/library/json.html

答案 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对象。