使用Python在JSON数据中使用Null而不是Nones

时间:2015-03-03 23:16:41

标签: python json python-2.7

我正在使用以下数据(此处隐藏和截断特定数据点):

[{"title": null, "metric1": 361429, "metric2": 36,},{"title": null, "metric1": 253798, "metric2": 48}]

当我尝试将此数据分配给Python中的变量时(目的是解析它),我收到以下错误消息:

Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'null' is not defined

根据我的研究,None似乎是Python对null的回答。我想知道的是,是否可以使用Python将我的数据中的null更改为None

我尝试从数据中创建一个字符串,将其分配给data,并以这种方式替换null

data = data.replace('null','None')

但是会产生一串数据本身:

data = '[{"title": None, "metric1": 361429, "metric2": 36,},{"title": None, "metric1": 253798, "metric2": 48}]'

我无法弄清楚如何将其从字符串转换回JSON。

如果有人有任何见解,我会很感激!

编辑:我正在从单独的源复制并将这些数据粘贴到Python解释器中。

2 个答案:

答案 0 :(得分:18)

更简单!

在将该列表分配给变量之前,只需将None分配给null

null = None
var = [{"title": null, "metric1": 361429, "metric2": 36,},{"title": null, "metric1": 253798, "metric2": 48}]

然后,您不需要对字符串进行相当不必要的转换(并使用json.loads返回到Python对象),只需将null替换为None。< / p>

但是,如果您从某些来源复制粘贴该代码,那么这才是真正必要的。否则,规范的答案是使用json.loads(或json.load)。

答案 1 :(得分:7)

如上所述,您无需替换"null"

"None"

只需

import json
parsed_data = json.loads(data)