xlrd模块使用报错解决“TypeError: 'instancemethod' object has no attribute '__getitem__'”

问题描述

1、报错信息:
File “E:/myPythonProject/testCase_py/common/getCase.py”, line 12, in get_case
table = datas.sheet_by_name[sheetName]
TypeError: ‘instancemethod’ object has no attribute ‘getitem
2、代码:

import xlrd

#通过传入用例名称的文件和工作表来读取测试用例
def get_case(filename,sheetName):
    case_dir = 'E:/myPythonProject/testCase_excel'+'/'+filename+'.xlsx'
    datas = xlrd.open_workbook(case_dir)
    table = datas.sheet_by_name[sheetName]
    nor = table.nrows
    nol = table.ncols
    return nor,table
解决

将12行:table = datas.sheet_by_name[sheetName]
改为:table = datas.sheet_by_name(sheetName)

原因

通过名称获取工作表,sheet_by_name()方法应该使用()而不是[]

总结

1、此报错一般都是括号使用不对,不同括号的含义不同:
()是函数引入参数
{}是字典
[]是列表key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值