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

时间:2014-11-26 01:55:57

标签: python json dictionary null

{
  "abc": null,
  "def": 9
}

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

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

2 个答案:

答案 0 :(得分:34)

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

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

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

答案 1 :(得分:1)

一种解决方案是使用不包含任何变量的变量。

import json
null = None
data = { "test": null }
json.dumps(data)