原文链接:http://www.juzicode.com/python-error-exception-unexpected-data-type-class-bytes
错误提示:
#juzicode.com/VX公众号:juzicode
import xlwt
wb = xlwt.Workbook()
ws = wb.add_sheet('juzicode')
a = b'juzicode'
ws.write(3, 0, '桔子code')
ws.write(3, 1, a)  #bytes
==========运行结果:
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
Cell In[9], line 7
      5 a = b'juzicode'
      6 ws.write(3, 0, '桔子code') #str
----> 7 ws.write(3, 1, a)  #bytes
File D:\Python\Python310\lib\site-packages\xlwt\Worksheet.py:1088, in Worksheet.write(self, r, c, label, style)
   1035 def write(self, r, c, label="", style=Style.default_style):
   1036     """
   1037     This method is used to write a cell to a :class:`Worksheet`.
   1038 
   (...)
   1086        :class:`~xlwt.Style.XFStyle` object.
   1087     """
-> 1088     self.row(r).write(c, label, style)
File D:\Python\Python310\lib\site-packages\xlwt\Row.py:254, in Row.write(self, col, label, style)
    252     self.__rich_text_helper(col, label, style, style_index)
    253 else:
--> 254     raise Exception("Unexpected data type %r" % type(label))
Exception: Unexpected data type <class 'bytes'>
错误原因:
1、xlwt写入表格的数据类型不能为bytes
解决方法:
1、将bytes类型更换为str类型:
#juzicode.com/VX公众号:juzicode
import xlwt
wb = xlwt.Workbook()
ws = wb.add_sheet('juzicode')
a = b'juzicode'
ws.write(3, 0, '桔子code') #str
ws.write(3, 1, str(a))  #bytes
扩展内容:
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。
