Python 解决中文写入Excel时抛异常的问题

yipeiwu_com6年前Python基础

近期接到业务部门需求,需将统计结果每日发送到业务部门,在调试python脚本的时候,导出的Excel标题为中文,总是抛出以下异常

Traceback (most recent call last): 
 File "totalpx.py", line 99, in <module> 
 export() 
 File "totalpx.py", line 54, in export 
 workbook.save(out_path) 
 File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/Workbook.py", line 710, in save 
 doc.save(filename_or_stream, self.get_biff_data()) 
 File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/Workbook.py", line 674, in get_biff_data 
 shared_str_table = self.__sst_rec() 
 File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/Workbook.py", line 636, in __sst_rec 
 return self.__sst.get_biff_record() 
 File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/BIFFRecords.py", line 77, in get_biff_record 
 self._add_to_sst(s) 
 File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/BIFFRecords.py", line 92, in _add_to_sst 
 u_str = upack2(s, self.encoding) 
 File "/usr/lib/python2.7/site-packages/xlwt-1.2.0-py2.7.egg/xlwt/UnicodeUtils.py", line 50, in upack2 
 us = unicode(s, encoding) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128) 

解决方法是,在创建workbook的时候设置字符集即可解决:

workbook = xlwt.Workbook(encoding = 'utf-8')

正常默认编码是ascii,所以写入中文解码会抛异常,设置为utf-8就行。

以上这篇Python 解决中文写入Excel时抛异常的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅谈Python的文件类型

浅谈Python的文件类型

Python的文件类型主要分为3种:源代码(source file)、字节码(byte-code file)、优化的字节码(optimized file)。这些代码都可以直接运行,不需要...

python 转换 Javascript %u 字符串为python unicode的代码

web采集的数据为 %u6B63%u5F0F%u4EBA%u5458,需要读取并转换为python对象,想了下不调用Javascript去eval,只能自己翻译了。 核心代码: i...

pandas 层次化索引的实现方法

层次化索引是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。 创建一个Series,并用一个由列表或数组组成的列表作为索引。 data=Series(np...

详解Python中where()函数的用法

where()的用法 首先强调一下,where()函数对于不同的输入,返回的只是不同的。 1当数组是一维数组时,返回的值是一维的索引,所以只有一组索引数组 2当数组是二维数组时,满足条件...

python中执行shell的两种方法总结

一、使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令...