问题:
Python xlrd模块读取xls文件,提示 TypeError: sequence item 4: expected str instance, float found
原因:
正常表格里内容读取后,存放到Python列表(list)里,要么是整数,要么是字符串。
而错误提示最后显示“ float found”,float是带小数点的,肯定不行;
而错误提示 4 是发现问题所在的 行 或 列 的位置(因为每个人写遍历方式不一样,有人先遍历行,有人先遍历列)
解决方法:
1.读表格的value值,判断内容是什么类型,然后转换成 int 或 str
## 内容是float 转 int float_to_int = sheet.cell(行,列).value if isinstance(float_to_int, float): float_to_int = '%d'%sheet.cell(行,列).value
因为是端口所以转int,可根据实际情况选择 int 或 str。
转str类型用str()函数即可,
str(sheet.cell(行,列).value)
另,还可以用map函数
float_to_int = map(str, sheet.cell(行,列).value)
str是指明需要的类型, sheet.cell(行,列).value是要转换的值
2.在xls文件对应表格中字符前加个单引号 ‘,但是不推荐这样,这只是应急灯方法。
写程序还是用上面 1 的方法。
参考:
https://blog.csdn.net/lly1122334/article/details/108770141
https://blog.csdn.net/a1007720052/article/details/106212829/