将Python None转换为JavaScript null

将Python None转换为JavaScript null,javascript,python,django,Javascript,Python,Django,在Django视图中,我生成了如下数据集: data = [22, 23, 18, 19, 21, None, 22, 20] 我使用以下命令将此数据传递给JavaScript变量: data_json = simplejson.dumps(data) 用于高级图表脚本 不幸的是,JavaScript在遇到None值时遇到了障碍,因为实际上我需要的是null。如何最好地将None替换为null,在Django视图或JavaScript中,我应该在哪里处理这个问题?如果您使用的是Python

在Django视图中,我生成了如下数据集:

data = [22, 23, 18, 19, 21, None, 22, 20]
我使用以下命令将此数据传递给JavaScript变量:

data_json = simplejson.dumps(data)
用于高级图表脚本


不幸的是,JavaScript在遇到
None
值时遇到了障碍,因为实际上我需要的是
null
。如何最好地将
None
替换为
null
,在Django视图或JavaScript中,我应该在哪里处理这个问题?

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

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

当我尝试接受的解决方案时,请参见
json.dumps()
返回的是NaN值,而不是JavaScript正在寻找的空值。因此,我找到了另一个不使用json或simplejson包的解决方案。以下解决方案在Django中使用None类型检查。可以找到激发我灵感的解决方案

为了正确填充Javascript数组,我在代码中使用了它,如下所示:

[
{% for val in data %}
     {% if val is none %}
         null,
     {% else %}
         {{ val }},
     {% endif %}
{% endfor %}
],

Django中的none对象将检查python提供的none值。但它似乎无法正确处理np.NaN对象。

您使用的simplejson版本是什么?根据文档,没有一个应该自动转换为null(请参阅),即使是simplejson的更新版本也可以工作。不知道为什么simplejson没有这么做。在Django中使用json而不是simplejson有什么缺点吗?好的-现在simplejson似乎可以。。。不确定发生了什么,但我昨天在json转储中肯定没有得到任何结果。我自己从来没有运行过任何基准测试来比较它们,但至少有人说simplejson更快。(当然,如果您需要与Python2.5兼容,内置的json模块就不存在了。)