Python读取excel⽂件中的数据并转换为字典
利⽤利⽤xlrd读取excel⽂件
在做⾃动化测试的时候,采⽤了将测试数据⽤例保存在excel表格中,然后从excel表格中读取数据。所以就有必要将excel数据转换为dict
例如:
需要将下图excel中数据
转换为:
{'姓名':'A37','密码':'Q123','业务类型':'传统直销业务','车主电话':'166666666','车辆性质':'家庭⾃⽤汽车','车牌颜⾊':'蓝'}
{'姓名':'A38','密码':'Q123','业务类型':'传统直销业务','车主电话':'166666666','车辆性质':'⾮营业机关、事业团体客车','车牌颜⾊':'绿'}
{'姓名':'A39','密码':'Q123','业务类型':'个⼈代理业务','车主电话':'166666666','车辆性质':'⾮营业货车','车牌颜⾊':'蓝'}
就是前⾯的索引固定为表⾥⾯黄⾊部分,然后每⼀⾏为⼀个dict,这样只需要设计测试⽤例就⾏了,不管测试⽤例是增加还是减少,只需要在表格⾥⾯按照这个格式填写,不需要修改代码就能做到做到测试⽤例的增删改查,及其⽅便。
实现代码:
# coding=utf-8
import xlrd
def get_data(dir_case, sheetnum):
#如果路径下xlsx⽂件很多,可以把⽂件名做⼀个拼接传⼊⽂件名这个参数python怎么读取excel文件数据
# dir_case = 'F:\\code\\csdn\\cese_excel\\' + filename + '.xlsx'
'''
获取其中⼀张sheet
table = data.sheet_by_name(data.sheet_names()[0])
sheet的⾏数与列数
'''
data = xlrd.open_workbook(dir_case)
table = data.sheets()[sheetnum]
nor = ws
nol = ls
dict={}
for i in range(1, nor):
for j in range(nol):
title = ll_value(0, j)
value = ll_value(i, j)
# print value
dict[title]= value
yield dict
'''
• yield 是⼀个类似 return 的关键字,只是这个函数返回的是个⽣成器
• 当你调⽤这个函数的时候,函数内部的代码并不⽴马执⾏,这个函数只是返回⼀个⽣成器对象
• 当你使⽤for进⾏迭代的时候,函数中的代码才会执⾏
'''
if __name__ =='__main__':
for i in get_data(r'D:\test_data.xlsx',0):
print(i)
代码效果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。