• Python接口自动化封装导出excel方法和读写excel数据


    一、首先需要思考,我们在页面导出excel,用python导出如何写入文件的

    封装前需要确认python导出excel接口返回的是一个什么样的数据类型
    如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值

     此时我们需要对返回数据做处理,如下;
    response.text # 响应文本数据(字符串)

     

     把返回的数据类型变成了dict,response.json()** 这样就方便我们按照字典的操作去拿数据**

    但是 我们现在的操作是要获取导出文件的数据,导出excel是一个二进制文件:

    response.content # 响应返回的内容(二进制)

    接下来我们按思路response.content方法来把这个二进制文件写入excel中:

    二、如下封装:

    1. class Export:
    2. """
    3. 导出域
    4. """
    5. def __init__(self, token):
    6. self.token = token
    7. self.headers = {
    8. 'Authorization': self.token,
    9. 'Content-Type': 'application/json;charset=UTF-8'
    10. }
    11. ```
    12. def export_sku_excel(self, payload, path):
    13. """
    14. 商品:商品明细导出
    15. """
    16. url = f'{HOST}/api/v1/commodity/exportSKU'
    17. res = client.post(url=url, json=payload, verify=False, headers=self.headers)
    18. resp = res.content
    19. with open(path, 'wb') as f: # 第一个参数是保存文件路径,不加路径就是当前路径
    20. if res.status_code == 200:
    21. return f.write(resp)
    22. else:
    23. return False

    如上,先接收二进制文件,然后使用操作excel方法‘wb’写入二进制文件

    以上写入文件后,测试过程我们需要再读取文件数据来断言,如下:

    1. class ExcelMethod:
    2. def __init__(self, filename):
    3. self.filename = filename
    4. def read_excel(self, row, col):
    5. """
    6. 读取导出文件的数据
    7. Returns:excel单元格数据
    8. """
    9. wb = xlrd.open_workbook(self.filename)
    10. sheet_name = wb.sheet_names()[0]
    11. sheet1 = wb.sheet_by_index(0)
    12. cellInfo = sheet1.cell_value(row, col) # 获取文件中某单元格的值
    13. return cellInfo # 返回文件单元格数据

    以上是一个写入和读取导出excel的封装方法
    值得注意的是,我用的是python内置库xlrd读写excel文件,xls格式文件xlrd可以读写,且xlrd使用1.几的版本,最新版本不支持xls文件,openpyxl库只支持xlsx格式文件

     还有一种方法,使用pandas库也可以读取Excel文件

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    文档获取方式:

    这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

    以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

  • 相关阅读:
    软件测试需要学习什么?好学吗?需要学多久?到底是报班好还是自学好?
    在面向对象的创建中,需要用到def init(self)方法。括号里的self是必选参数,必选参数存在的意义是什么,self可以干什么用,请举例表达self的用处。
    Linux系统--多线程
    Delphi终极版速扩展VCL应用程序
    5.10.WebRTC接口宏
    Matlab程序
    ARM 笔记
    强化学习入门
    SourceTree使用技巧
    猿创征文|【.Net实用方法总结】 整理并总结System.IO中FileStream类及其方法介绍
  • 原文地址:https://blog.csdn.net/yjt2045263063/article/details/133474714