Подтвердить что ты не робот

Как данные JSON с нулевым значением преобразуются в словарь

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

У меня есть данные JSON, которые выглядят так. Если не для null (без кавычек в виде строки), я мог бы использовать модуль ast literal_eval для преобразования вышеуказанного словаря в словарь.

Словарь в Python не может иметь значение null как значение, но может иметь значение "null" в качестве значения. Как преобразовать вышеуказанное в словарь, распознаваемый Python?

4b9b3361

Ответ 1

Вы должны использовать встроенный модуль json, который был специально разработан для этой задачи:

>>> 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.

Ответ 2

Одним из решений является использование переменной, которая содержит None.

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