Python,zip和dict,快速映射
def get_excel_data(self):
print('------正在批量读取测试用例数据------')
sheetNames = self.opExcel.get_sheet_names()
print("获取所有的sheet页的名字:{}".format(sheetNames))
testData = []
for name in sheetNames:
data = self.opExcel.get_data_by_name(name)
titleName = data.row_values(0) # 获取到第一行,这个第一样是标题,表头
print(titleName)
# rowData = dict.fromkeys(titleName,'')
rows = data.nrows
for row in range(1, rows): # 为什么是从1,因为0是表头,
print(zip(titleName, data.row_values(row)))
print(dict(zip(titleName, data.row_values(row))))
testData.append(dict(zip(titleName, data.row_values(row))))
print(f'成功读取到本次要执行的全部用例共计{len(testData) + 1}条')
print(testData)
return testData
获取到表头,
然后获取到每行的数据,
这两个可迭代对象使用zip变成一个列表,
然后使用dict把这个zip之后的对象,变成key和value,
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
技术改变命运