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

你可能感兴趣的:(Python)