humingcheng / study_notes

The only significance of notes is to reduce the cost of acquiring knowledge.
0 stars 0 forks source link

python中的None和json中的null #16

Open humingcheng opened 8 years ago

humingcheng commented 8 years ago

场景重现:

在python代码中打印一个json字符串,打印结果如下:{"name": null} 把这个打印结果赋值给一个python变量:a = {"name": null},结果报错:NameError: name 'null' is not defined 问题:明明是正常json字符串,为什么会出现错误?

解答

1,json支持null值,不支持None;python支持None值,不支持null;因此出现错误。 2,正常json字符串怎么会出现这个错误,那业界的json的解析过程岂不是一大堆null的报错?因为原本的json字符串是:'{"name": null}',一旦打印出来就变成了:{"name": null}。json字符串没有问题,问题是打印出来的就不是一个字符串变量了(没有引号了)。 3,json解析到底是如何解决null和python中的None问题:python中,json.loads()(json string ->json object)会把null变成None,json.dumps()(json object -> json string)会把None变成null。