Python实现接口自动化封装导出excel和读写excel数据
一、首先需要思考,我们在页面导出excel,用python导出如何写入文件的
封装前需要确认python导出excel接口返回的是一个什么样的数据类型
如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值
此时我们需要对返回数据做处理,如下;
response.text # 响应文本数据(字符串)
把返回的数据类型变成了dict,response.json()** 这样就方便我们按照字典的操作去拿数据**
但是 我们现在的操作是要获取导出文件的数据,导出excel是一个二进制文件:
response.content # 响应返回的内容(二进制)
接下来我们按思路response.content方法来把这个二进制文件写入excel中:
二、如下封装
class Export: """ 导出域 """ def __init__(self, token): self.token = token self.headers = { 'Authorization': self.token, 'Content-Type': 'application/json;charset=UTF-8' } ``` def export_sku_excel(self, payload, path): """ 商品:商品明细导出 """ url = f'{HOST}/api/v1/commodity/exportSKU' res = client.post(url=url, json=payload, verify=False, headers=self.headers) resp = res.content with open(path, 'wb') as f: # 第一个参数是保存文件路径,不加路径就是当前路径 if res.status_code == 200: return f.write(resp) else: return False
如上,先接收二进制文件,然后使用操作excel方法‘wb’写入二进制文件
以上写入文件后,测试过程我们需要再读取文件数据来断言,如下:
class ExcelMethod: def __init__(self, filename): self.filename = filename def read_excel(self, row, col): """ 读取导出文件的数据 Returns:excel单元格数据 """ wb = xlrd.open_workbook(self.filename) sheet_name = wb.sheet_names()[0] sheet1 = wb.sheet_by_index(0) cellInfo = sheet1.cell_value(row, col) # 获取文件中某单元格的值 return cellInfo # 返回文件单元格数据
以上是一个写入和读取导出excel的封装方法
值得注意的是,我用的是python内置库xlrd读写excel文件,xls格式文件xlrd可以读写,且xlrd使用1.几的版本,最新版本不支持xls文件,openpyxl库只支持xlsx格式文件
还有一种方法,使用pandas库也可以读取Excel文件
到此这篇关于Python实现接口自动化封装导出excel和读写excel数据的文章就介绍到这了,更多相关Python excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python3.6 如何将list存入txt后再读出list的方法
这篇文章主要介绍了python3.6 如何将list存入txt后再读出list的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-07-07python中enumerate() 与zip()函数的使用比较实例分析
这篇文章主要介绍了python中enumerate()与zip()函数的使用比较,结合实例形式分析了enumerate()与zip()函数的功能、用法及操作注意事项,需要的朋友可以参考下2019-09-09
最新评论