Я анализирую несколько листов данных Unicode и создаю словарь для определенных ячеек на каждом листе, но у меня возникают проблемы с декодированием данных Unicode. Небольшой фрагмент кода ниже
for key in shtDict:
sht = wb[key]
for row in sht.iter_rows('A:A',row_offset = 1):
for cell in row:
if isinstance(cell.value,unicode):
if "INC" in cell.value:
shtDict[key] = cell.value
Вывод этого раздела:
{'60071508': u'\ufeffReason: INC8595939', '60074426': u'\ufeffReason. Ref INC8610481', '60071539': u'\ufeffReason: INC8603621'}
Я попытался правильно декодировать данные на основе u '\ ufeff' в строке Python , изменив последнюю строку на:
shtDict[key] = cell.value.decode('utf-8-sig')
Но я получаю следующую ошибку:
Traceback (most recent call last):
File "", line 55, in <module>
shtDict[key] = cell.value.decode('utf-8-sig')
File "C:\Python27\lib\encodings\utf_8_sig.py", line 22, in decode
(output, consumed) = codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 0: ordinal not in range(128)
Не уверен, в чем проблема, я также пытался расшифровать с 'utf-16', но я получаю ту же ошибку. Кто-нибудь может помочь с этим?