У меня есть сценарий с извлечением некоторых данных и разбор его через lxml.Декодирование строки «raw», преобразованной в unicode
Первоначально он имеет тип lxml.etree._ElementUnicodeResult
, но мы могли бы легко преобразовать его в unicode
.
Существует некоторый опасный момент. Эта строка в Юникоде содержит необработанные байты строки. Хотя он имеет тип unicode
, он хранит необработанные байты обычного python str
.
label
Out[53]: u'\xd0\x92\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xb8\xd1\x80'
Есть ли способ, чтобы преобразовать эту строку unicode
необработанных байтов для необработанных байтов, фактически (str
типа на Python 2).
Я мог бы легко скопировать и вставить его в интерактивной консоли и преобразовать его фактически Юникода пунктов:
'\xd0\x92\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xb8\xd1\x80'
Out[54]: '\xd0\x92\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xb8\xd1\x80'
'\xd0\x92\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xb8\xd1\x80'.decode('utf-8')
Out[55]: u'\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440'
Там должна быть ошибка в коде, если 'label' заканчивается имея это значение. Покажите фактический код, который его производит. – ekhumoro