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.