python读取Excel文件将数据组装成字典

log:

背景

        编写接口自动化框架,设计用例时计划通过Excel管理接口用例,想要读取文件下所有excel相关的用例文件,通过excel管理所有接口用例,xlrd库因为版本升级需要指定对应版本,所以使用了openpyxl库,通过读取Excel用例数据,将数据读取组装成dict重新放到容器里面输出

安装库

pip install openpyxl

实现源码思路

# -*- coding: utf-8 -*-
# @Time    : 2023/10/9 21:24
# @Author  : YYQ
# @File    : read_excel.py

import os
from get_path import path
from openpyxl import load_workbook
from common.log import log
from config.read_config import rc

case_key = eval(rc.get_excel_config(value="case_key"))
# 读取Excel文件
case_list = []
# 列出指定目录下的所有文件名
files = os.listdir(path + '/test_case/case_file')
MIN_ROW = eval(rc.get_excel_config())
MIN_COL = eval(rc.get_excel_config(value="min_column"))
MAX_COL = eval(rc.get_excel_config(value="max_column"))


def get_case_data():
    for file in files:
        # 获取用例文件路径
        case_file = os.path.join(path, "test_case", "case_file", file)
        # 获取sheet
        wb = load_workbook(filename=case_file)
        sheet_names = wb.sheetnames
        for sheet_ in sheet_names:
            log.info(f"读取用例文件>>>>>>>>>【{file}】->{sheet_}")
            # 加载指定sheet页
            sheet = wb[sheet_]
            # 获取数据的行数
            max_row = sheet.max_row
            for row in sheet.iter_rows(min_row=MIN_ROW, max_row=max_row, min_col=MIN_COL, max_col=MAX_COL):
                row_values = []
                if row[0].value is None:
                    continue
                else:
                    for cell in row:
                        row_values.append(cell.value)
                # 合并key,value为字典格式
                dict_case = dict(zip(case_key, row_values))
                if row_values:
                    if dict_case["exec_i_y"] == "否":
                        log.info(f"此用例:::{dict_case} 为关闭状态")
                    else:
                        case_list.append(dict(dict_case))
    return case_list


if __name__ == '__main__':
    print(get_case_data())

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值