Ошибка 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 в различных сценариях:

Другие вопросы по тегам