1
Если вы получаете ошибку в unicode, иногда бывает трудно найти корень проблемы. Откуда взялась эта строка?Показать строку в UnicodeError
Есть ли способ показать строку (или часть строки с ошибкой)?
Если вы получаете ошибку в unicode, иногда бывает трудно найти корень проблемы. Откуда взялась эта строка?Показать строку в UnicodeError
Есть ли способ показать строку (или часть строки с ошибкой)?
Вы можете использовать этот фрагмент:
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 символов после ошибки юникода вашей строки.
Это скрывает класс исключений (UnicodeDecodeError vs UnicodeEncodeError), который иногда может иметь решающее значение для понимания ошибки. Я предлагаю 'raise exc .__ class __ ('% s hint:% r'% (exc, hint))'. –
@MariusGedminas спасибо, я обновил ответ. – guettli