Ошибка UnicodeDecodeError при записи файла .xlsx с помощью xlsxwriter

Я пытаюсь записать около 1000 строк в файл .xlsx из моего приложения python. Данные в основном представляют собой комбинацию целых чисел и строк. При запуске команды wbook.close() возникает прерывистая ошибка. Ошибка следующая:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15: 
                     ordinal not in range(128)

Мои данные не имеют ничего в юникоде. Мне интересно, почему декодер вообще есть. Кто-нибудь заметил эту проблему?

Ответ 1

0xc3 - "À". Итак, вам нужно изменить кодировку. Используйте метод decode().

string.decode('utf-8')

Также в зависимости от ваших потребностей и использования вы можете добавить

# -*- coding: utf-8 -*-

в начале вашего script, но только если вы уверены, что кодировка не будет мешать и сломать что-то еще.

Ответ 2

Как указывает Алекс Христов, в вашем коде есть некоторые данные, отличные от ascii, которые должны быть закодированы как UTF-8 для Excel.

См. следующие примеры из документов, каждый из которых имеет инструкции по обработке UTF-8 с XlsxWriter в разных сценариях: