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文件很多,可以把文件名做一个拼接传入文件名这个参数
    # dir_case = 'F:\\code\\csdn\\cese_excel\\' + filename + '.xlsx'
    '''
    
获取其中一张sheet
table = data.sheet_by_name(data.sheet_names()[0])

sheet的行数与列数
table.nrows, table.ncols

    '''

    data = xlrd.open_workbook(dir_case)
    table = data.sheets()[sheetnum]
    nor = table.nrows
    nol = table.ncols
    dict = {}
    for i in range(1, nor):
        for j in range(nol):
            title = table.cell_value(0, j)
            value = table.cell_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)

代码效果:
在这里插入图片描述

评论 3 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

如玉少年-_-

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值