Я работаю в Django и использую urllib2 и simplejson для анализа некоторой информации из API.
Проблема заключается в том, что API возвращает информацию в кодировке Latin-1, и время от времени появляется символ, который вызывает ужасный сбой Django с ошибкой кодирования. Это мой код:
get_person_id_url = "http://www.domain.com/api/get?" + \
"key=KEY&num="+ urllib2.quote(number) + "&always_return=true&output=js"
request = urllib2.Request(get_person_id_url, None, {'Referer': ''})
response = urllib2.urlopen(request)
results = json.load(response)
person_id = results["person_id"]
Я знаю, что могу использовать что-то вроде этого, чтобы превратить строки Latin1 в UTF8:
responseString = responseString.decode('latin1').encode('utf-8')
но, похоже, это работает только со строками, поэтому я не совсем уверен, как и где применять его в приведенном выше коде. Что я должен декодировать и где отлавливать любые ошибки, прежде чем они появятся?
К сожалению, я не помню, какой API-вызов нужно сделать, чтобы вернуть персонажа, который потерпит крах Django - поэтому я не могу провести много тестов, прежде чем он будет запущен. Я надеюсь, что StackOverflow может помочь ... Спасибо!