如何将具有空值的JSON数据转换为字典

use*_*139 23 python null json dictionary

{
  "abc": null,
  "def": 9
}
Run Code Online (Sandbox Code Playgroud)

我有JSON数据,看起来像这样.如果不是null(没有引号作为字符串),我可以使用ast模块literal_eval将上面的内容转换为字典.

Python中的字典不能具有null值,但可以"null"作为值.如何将上述内容转换为Python识别的字典?

iCo*_*dez 40

您应该使用为此任务明确设计的内置json模块:

>>> import json
>>> data = '''
... {
...   "abc": null,
...   "def": 9
... }
... '''
>>> json.loads(data)
{'def': 9, 'abc': None}
>>> type(json.loads(data))
<class 'dict'>
>>>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,即使您的JSON数据不包含任何null值,也应该使用此方法.虽然它可能有用(有时),ast.literal_eval但旨在评估表示为字符串的Python代码.它只是使用JSON数据的错误工具.


avi*_*oun 15

一种解决方案是使用包含 None 的变量。

import json
null = None
data = { "test": null }
json.dumps(data)
Run Code Online (Sandbox Code Playgroud)