2013-09-16 2 views
1

Если вы получаете ошибку в unicode, иногда бывает трудно найти корень проблемы. Откуда взялась эта строка?Показать строку в UnicodeError

Есть ли способ показать строку (или часть строки с ошибкой)?

ответ

4

Вы можете использовать этот фрагмент:

try: 
    html = html.decode(encoding) 
except UnicodeError, exc: 
    hint = exc.object[max(exc.start-15, 0):min(exc.end+15, len(exc.object))] 
    raise exc.__class__('%s hint: %r' % (exc, hint)) 

Таким образом, вы видите 15 символов до и 15 символов после ошибки юникода вашей строки.

+1

Это скрывает класс исключений (UnicodeDecodeError vs UnicodeEncodeError), который иногда может иметь решающее значение для понимания ошибки. Я предлагаю 'raise exc .__ class __ ('% s hint:% r'% (exc, hint))'. –

+0

@MariusGedminas спасибо, я обновил ответ. – guettli

Смежные вопросы