将Python列表导出到Excel

时间:2017-03-20 18:24:54

标签: python

score_sheet = [[2],[1],[0],[0],[6],[0],[0],[1],[0],[2],[1],[1],[4],[0],      [0],[0, 'W', 'S Dhawan c \xe2\x80\xa0Uthappa b Morkel 6 '],[1],[0],[4],[0, 'W', 'DA Warner c SA Yadav b UT Yadav 13 '],[0],[2],[0],[1],[1],[0],[0],[1],[2],[0],[4],[0],[1],[0],[1],[0, 'W', 'MC Henriques lbw b UT Yadav 6 '],[0],[1],[1],[1],[1],[1],[1],[0],[0],[0],[1],[0],[1],[0],[1],[1],[0],[2],[1],[1],[0],[0, 'W', 'DJ Hooda c UT Yadav b Russell 6 '],[2],[0],[1],[1],[0],[0],[1],[0],[2],[2],[0],[4],[0],[0],[1],[0],[1],[4],[4],[0],[4],[0],[3],[2],[0],[4],[0],[1],[1],[6],[0],[0],[1],[1],[1],[0],[6],[2],[1],[1],[0],[1],[1],[6],[1],[1],[0, 'W', 'NV Ojha c Chawla b Morkel 37 '],[1],[1],[6],[1],[1],[1],[0, 'W', 'EJG Morgan c Shakib Al Hasan b UT Yadav 51 '],[1],[6],[1],[1],[1],[2],[1, 'W', 'A Ashish Reddy run out 13 '],[1]]

import xlwt
from tempfile import TemporaryFile  
book = xlwt.Workbook()
sheet1 = book.add_sheet('sheet1')
for i,e in enumerate(score_sheet):
    if len(score_sheet[i])==1:
        sheet1.write(i,1,e[0])
    else:
        sheet1.write(i,1,e[0])
        sheet1.write(i,2,e[1])
        sheet1.write(i,3,e[2])
n = "score_book.xls"
book.save(n)
book.save(TemporaryFile()) 

我想将score_sheet转换为excel文件 它显示了这些错误:

文件“”,第2行,in     book.save(名称)

文件“C:\ Python27 \ lib \ site-packages \ xlwt \ Workbook.py”,第710行,保存     doc.save(filename_or_stream,self.get_biff_data())

文件“C:\ Python27 \ lib \ site-packages \ xlwt \ Workbook.py”,第674行,在get_biff_data中     shared_str_table = self .__ sst_rec()

文件“C:\ Python27 \ lib \ site-packages \ xlwt \ Workbook.py”,第636行,在__sst_rec中     return self .__ sst.get_biff_record()

文件“C:\ Python27 \ lib \ site-packages \ xlwt \ BIFFRecords.py”,第77行,在get_biff_record中     self._add_to_sst(S)

文件“C:\ Python27 \ lib \ site-packages \ xlwt \ BIFFRecords.py”,第92行,在_add_to_sst中     u_str = upack2(s,self.encoding)

文件“C:\ Python27 \ lib \ site-packages \ xlwt \ UnicodeUtils.py”,第50行,在upack2中     us = unicode(s,encoding)

UnicodeDecodeError:'ascii'编解码器无法解码位置11的字节0xe2:序数不在范围内(128)

请你指导我该怎么办?

1 个答案:

答案 0 :(得分:3)

您在需要Unicode字符串的函数中使用非Unicode字符串。 Python 2将尝试自动进行转换,但它使用的'ascii'编解码器不能处理所有字符。

替换:

'S Dhawan c \xe2\x80\xa0Uthappa b Morkel 6 '

使用:

u'S Dhawan c \u2020Uthappa b Morkel 6 '