我正在使用以下数据(此处隐藏和截断特定数据点):
[{"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解释器中。
答案 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)