{
"abc": null,
"def": 9
}
我有JSON数据,看起来像这样。如果不是null(没有引号作为字符串),我可以使用ast
模块literal_eval
将上述内容转换为字典。
Python中的字典不能将null
作为值,但可以将"null"
作为值。如何将上述内容转换为Python识别的字典?
答案 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)