【记录贴】从Excel获取数据驱动时object of type 'float' has no len()错误处理
前言:做自动化时,需要在Excel获取账号密码登录;但是账号获取成功,密码获取失败
出现object of type 'float' has no len()错误(重点:密码为纯数字)
出错部分代码:
name_value = DoExcel.ReadExcel('TestData.xlsx', 'Sheet1').getExcelValue(7, 0)
pwd_value = DoExcel.ReadExcel('TestData.xlsx', 'Sheet1').getExcelValue(7, 1)
jurl = DoExcel.ReadExcel('TestData.xlsx', 'Sheet1').getExcelValue(7, 2)
其中:pwd_value参数获取会报错
解决代码:
name_value = DoExcel.ReadExcel('TestData.xlsx', 'Sheet1').getExcelValue(7, 0)
pwd_value = int(DoExcel.ReadExcel('TestData.xlsx', 'Sheet1').getExcelValue(7, 1))
url = DoExcel.ReadExcel('TestData.xlsx', 'Sheet1').getExcelValue(7, 2)
后言:
从excel读取的数字会默认为flost(浮点型),需要转换为整形int
例如Excel保存密码是123456,读取出来却为:123456.0(浮点型)
所以在读取出来后,定义好数据类型就可以解决此问题了。 密码不应该是字符串型的吗?密码长度再长一点你的int也会报错吧。。。 Loker 发表于 2020-11-19 16:52
密码不应该是字符串型的吗?密码长度再长一点你的int也会报错吧。。。
Excel里修改单元格格式保存,有时保存不成功(常规、数值、文本,这三种格式进行切换保存);使用sheetName.cell(rownum, colnum).ctype 获取单元格数据类型,Excel切换一个格式就执行一次,最后发现当格式是常规或数值时你可以看到运行后类型是2,当切换文本时 结果还是2,关闭Excel会提示你保存,这时保存了再执行类型才会是1。
注:ctype: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
页:
[1]