2015-12-29 3 views
0

Я пытаюсь преобразовать файл csv в файл .xlsx с помощью PyExcel.Python конвертировать csv в xlsx, однако получение UnicodeDecodeError

Вот некоторые примеры данных, которые есть в файле CSV.

1.34805E+12,STANDARD,Jose,Sez,,La Pica, 16 o,Renedo de Piélagos,,39470,Spain,,No,No,1231800,2 

У меня возникли проблемы со специальными символами, если их нет это линия

merge_all_to_a_book(glob.glob("uploadorders.csv"), "uploadorders.xlsx") 

не имеет никаких проблем, однако если у него есть специальные символы, такие как

Piélagos 

или

Lücht 

Я получаю эту ошибку:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 26: invalid continuation byte 

Я не уверен, что делать по этому поводу, я прибег к загрузке файла, и повторно сохраните его в Excel.

+0

uploadorders.csv не utf8 отформатирована. Чтобы декодировать его, вам нужно будет использовать последнюю версию pyexcel и pyexcel-io и указать исходную кодировку. Функция merge_all_to_a_book' не может принять кодировку на данный момент. вы можете попробовать: 'pyexcel.save_as (file_name =" uploadorders.csv ", encoding =" your_encoding ", dest_file_name =" uploadorders.xlsx ")'. Или попробуйте использовать пакет pyexcel-cli, тогда вы можете сделать «pyexcel transcode --csv-source-encoding your_encoding uploadorders.csv uploadorders.xlsx' – chfw

ответ

0

Вы получаете UnicodeDecodeError, потому что кодирование python для чтения csv отличается от того, которое используется для сохранения файла.

Попробуйте сохранить файл в кодировке UTF-8 или использовать правильную кодировку, чтобы прочитать его: https://docs.python.org/2/howto/unicode.html

Смежные вопросы