Ошибка UnicodeDecodeError при записи файла.xlsx с использованием xlsxwriter
Я пытаюсь записать около 1000 строк в файл.xlsx из моего приложения Python. Данные в основном представляют собой комбинацию целых чисел и строк. Я получаю неустойчивую ошибку при выполнении команды wbook.close(). Ошибка заключается в следующем:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15:
ordinal not in range(128)
Мои данные не имеют ничего в Unicode. Мне интересно, почему декодер вообще работает. Кто-нибудь заметил эту проблему?
2 ответа
0xc3 - это "А". Так что вам нужно изменить кодировку. Используйте метод decode().
string.decode('utf-8')
Также в зависимости от ваших потребностей и использования вы можете добавить
# -*- coding: utf-8 -*-
в начале вашего скрипта, но только если вы уверены, что кодировка не будет мешать и нарушать что-то еще.
Как указывает Алекс Христов, в вашем коде есть данные, отличные от ascii, которые необходимо кодировать как UTF-8 для Excel.
Посмотрите следующие примеры из документов, каждый из которых содержит инструкции по работе с UTF-8 с XlsxWriter в различных сценариях: