У меня есть таблица Excel, которую я читаю, в которой содержатся некоторые знаки.UnicodeEncodeError: кодек 'ascii' не может кодировать символ u ' xa3'
Когда я пытаюсь прочитать его в модуль xlrd, я получаю следующее сообщение об ошибке:
x = table.cell_value(row, col)
x = x.decode("ISO-8859-1")
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)
Если я переписать это x.encode («UTF-8») он перестает бросать ошибку, но, к сожалению, когда я записываю данные где-то в другом месте (как латинский-1), знаки «все» становятся искаженными.
Как исправить это и правильно прочитать знаки £?
--- UPDATE ---
Какой-то читатели предположили, что мне не нужно, чтобы расшифровать его вообще, или что я могу просто кодировать его в Latin-1, когда мне нужно. Проблема заключается в том, что мне нужно вначале записать данные в CSV-файл, и, похоже, они не соответствуют исходным строкам.
Если я не кодировать или декодировать данные на всех, то это происходит (после того, как я добавил строку в массив называемые элементы):
for item in items:
#item = [x.encode('latin-1') for x in item]
cleancsv.writerow(item)
File "clean_up_barnet.py", line 104, in <module>
cleancsv.writerow(item)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2022' in position 43: ordinal not in range(128)
я получаю ту же ошибку, даже если я раскомментируйте линию Latin-1.
Вы '.decode'-ing дважды? – katrielalex
Я так не думаю. Предыдущая строка: x = table.cell_value (строка, col), из модуля xlrd, хотя, может быть, это что-то смешное? – AP257