В результате вызова API я получаю следующий объект <type 'unicode'>
:
{"From":"en","Translations":[{"Count":0,"MatchDegree":100,"MatchedOriginalText":"","Rating":5,"TranslatedText":"Cómo estás"}]}
но когда я пытаюсь проанализировать его с помощью simplejson_loads()
, я получаю эту ошибку:
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Как я могу обращаться с такими объектами?
EDIT II: JSON правильный. Что портит ситуацию, так это спецификация в начале строки. Попытка избавиться от него с помощью .encode('utf-8-sig')
приводит к ошибке
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 2: ordinal not in range(128)
но где-то в это обсуждение я нашел решение, которое сработало для меня:
if u.startswith(u'\ufeff'):
u = u[1:]
И я весьма склонен просто сойти с рук и быть счастливым.
import json; json.loads(u'that string')
возвращает мне ожидаемоеdict
. - person roippi   schedule 17.05.2014