import xlrd,re,json def get_excelData(workBook,sheetName,caseName): """ :param sheetName: sheet表名 :param caseName: 从excle中第一列关键字(字母) :return: # [{},{},{}] """ workSheet = workBook.sheet_by_name(sheetName) list_title = workSheet.row_values(0) try: num_caseNum = list_title.index('caseNum') num_function = list_title.index('function') num_interface = list_title.index('interface') num_priority = list_title.index('priority') num_url = list_title.index('url') num_frontInterface = list_title.index('frontInterface') num_frontCondition = list_title.index('frontCondition') num_method = list_title.index('method') num_headers = list_title.index('headers') num_reqData = list_title.index('reqData') num_expectResult = list_title.index('expectResult') num_expectData = list_title.index('expectData') num_testPoint = list_title.index('testPoint') num_otherExpectData =list_title.index('otherExpectData') num_yapiAddress = list_title.index('yapiAddress') num_creator = list_title.index('creator') num_autoCreator = list_title.index('autoCreator') lis = [] idx = 0 for one in workSheet.col_values(0): result = ''.join(re.findall(r'[A-Za-z]', one)) # 抽取字母字符串 if caseName == result: dict0 = {"url": "", "headers": "", "method": "", "reqData": "", "expectData": ""} dict0['url'] = workSheet.cell_value(idx, num_url) dict0['headers'] = workSheet.cell_value(idx, num_headers) dict0['method'] = workSheet.cell_value(idx, num_method) dict0['reqData'] = workSheet.cell_value(idx, num_reqData) dict0['expectData'] = workSheet.cell_value(idx, num_expectData) dict0['testPoint']= workSheet.cell_value(idx, num_testPoint) dict0['caseNum']=workSheet.cell_value(idx, num_caseNum) dict0['otherExpectData'] =workSheet.cell_value(idx, num_otherExpectData) dict0['function'] =workSheet.cell_value(idx, num_function) dict0['interface'] = workSheet.cell_value(idx, num_interface) dict0['priority'] = workSheet.cell_value(idx, num_priority) dict0['yapiAddress'] = workSheet.cell_value(idx, num_yapiAddress) dict0['creator'] = workSheet.cell_value(idx, num_creator) dict0['autoCreator'] = workSheet.cell_value(idx, num_autoCreator) dict0['frontInterface'] = workSheet.cell_value(idx, num_frontInterface) dict0['frontCondition'] = workSheet.cell_value(idx, num_frontCondition) dict0['expectResult'] = workSheet.cell_value(idx, num_expectResult) # json字符串转换成字典 try: dict0['expectData'] = json.loads(dict0['expectData']) except: dict0['expectData'] = None try: dict0['otherExpectData'] = json.loads(dict0['otherExpectData']) except: dict0['otherExpectData'] = None try: dict0['reqData'] = json.loads(dict0['reqData']) except: dict0['reqData'] = None try: dict0['headers'] = json.loads(dict0['headers']) except: dict0['headers'] = None lis.append(dict0) idx += 1 return lis except: list0=[{'url': '', 'headers': None, 'method': 'post', 'reqData': None, 'expectData': None, 'testPoint': '', 'caseNum': '', 'otherExpectData': None, 'function': '', 'interface': '', 'priority': '', 'yapiAddress': '', 'creator': '', 'autoCreator': '', 'frontInterface': '', 'frontCondition': '', 'expectResult': ''}] print("检查excle中标题是否正确") return list0 if __name__ == '__main__': workBook = xlrd.open_workbook('../../test_case_data/bmc/bmc_testcase_20210513.xlsx') li = get_excelData(workBook,"账号信息基本功能","Register") print(li) # for i in li: # print(i) # {"Authorization": "","Content-Type":"application/x-www-form-urlencoded"}