python读取excel的问题

#coding=utf-8importxlrdworkbook=xlrd.open_workbook('Cura.xls')#打开一个excelsheet=workboo... #coding=utf-8
import xlrd
workbook = xlrd.open_workbook('Cura.xls')#打开一个excel
sheet = workbook.sheet_by_name(u'sheet1')#获取一个工作表
buf=sheet.col_values(1)
jp=open("jp1",'w')
for i in range(0,len(buf)):
jp.write(buf[i].decode('utf-8'))
jp.close()

不成功,说

咋整?
展开
 我来答
bdwisyou7d
推荐于2016-07-04 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1085万
展开全部

你试这样子。将

jp.write(buf[i].decode('utf-8'))

改成

jp.write(unicode(buf[i]).encode('utf-8'))


python2有自动编码转换的功能。原来type(buf[i])如果是unicode,你还要decode,那么它会自动先按ascii进行encode,变成str型后,再运行decode('utf-8')。所以就会出现你上面的那个错误,汉字是不能encode成ascii的。 


也许刚才的答案是错误的。

你还可以试试

jp.write(buf[i])


另外说明一下。写到socket或者是文件里,必须是string类型。不能是unicode。

这在python2和python3里是一样的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式