У меня есть список, который содержит содержимое lxml.etree._ElementStringResult и lxml.etree._ElementUnicodeResultСнизить дает ошибку при цикл работает нормально
for x in contents:
final_content += (x.encode('utf-8')) + '\n'
и
final_content = reduce(lambda a, x: a+x.encode('utf-8') + '\n', contents)
Первый код работает нормально, а второй код вызывает ошибку декодирования в юникоде.
<ipython-input-129-17a363dfff6c> in <lambda>(a, x)
----> 1 final_content = reduce(lambda a, x: a+x.encode('utf-8') + '\n', contents)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
37: ordinal not in range(128)
Редактировать:
Уменьшить терпит неудачу, потому что первый элемент не кодируется.
Когда я изменил код
final_content = contents[0]
for x in range(1,len(contents)):
final_content += contents[x].encode('utf-8')
Это поднимает ту же ошибку, как и уменьшить блок выше.
Отключить тему: 'final_content = u '\ n'.join ([x.encode (' utf-8 ') для x в содержимом])' – danihp
@bhargav Этот вопрос касается проблем с сокращением, а не кодированием. – StrawhatLuffy
@ danihp Этот комментарий был предназначен для модов, которые закрыли вопрос как дубликат. – StrawhatLuffy