原文链接: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”后台给我留言,欢迎一起探讨交流。