Skip to content

python中的None和json中的null #16

@humingcheng

Description

@humingcheng

场景重现:

在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。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions