{
\"abc\": null,
\"def\": 9
}
I have JSON data which looks like this. If not for null (without quotes as a string), I could have used ast
You should use the built-in json module, which was designed explicitly for this task:
>>> import json
>>> data = '''
... {
... "abc": null,
... "def": 9
... }
... '''
>>> json.loads(data)
{'def': 9, 'abc': None}
>>> type(json.loads(data))
<class 'dict'>
>>>
By the way, you should use this method even if your JSON data contains no null
values. While it may work (sometimes), ast.literal_eval
was designed to evaluate Python code that is represented as a string. It is simply the wrong tool to work with JSON data.
One solution is to use a variable that contains None.
import json
null = None
data = { "test": null }
json.dumps(data)