Simplejson странное поведение

Так в Python я делаю словарь в структуре JSON

>>> a = {"name":'nikhil',"age":25}

Теперь я проверяю, a является допустимым JSON с использованием http://jsonlint.com/. Я понимаю, что это действительно.

Теперь я делаю:

>>> b = simplejson.dumps(a)
>>> b= '{"age": 25, "name": "nikhil"}'

Теперь я делаю:

>>> c = simplejson.loads(b)
>>> c = {'age': 25, 'name': 'nikhil'}

Теперь я проверяю, c является допустимым JSON Я получаю ошибку.

Почему Simplejson не может преобразовать строку JSON обратно в действительный JSON? когда я начал с действительным JSON только?

1 ответ

Вы путаете JSON с Python здесь. b является строкой в ​​формате JSON, c это объект Python

В этом отношении синтаксис Python очень похож на JSON (JavaScript).

  • Строки Python могут использовать либо ' или же "в зависимости от содержимого; JSON всегда использует ", Вы вошли a использование двойных кавычек для ключей, одинарных кавычек для однострочного значения; если вы попросите Python отозвать его обратно для вас, вы обнаружите, что он будет показан только в одинарных кавычках.

  • Python логические True или же False, JSON использует true а также false,

  • JSON 'пустое' значение null, Python использует None вместо.

См. Раздел " Кодеры и декодеры" json модуль для обзора того, как сопоставляются объекты JSON и Python.

Другие вопросы по тегам