Python實(shí)現(xiàn)接口自動(dòng)化封裝導(dǎo)出excel和讀寫(xiě)excel數(shù)據(jù)
一、首先需要思考,我們?cè)陧?yè)面導(dǎo)出excel,用python導(dǎo)出如何寫(xiě)入文件的
封裝前需要確認(rèn)python導(dǎo)出excel接口返回的是一個(gè)什么樣的數(shù)據(jù)類(lèi)型
如下:我們先看下不對(duì)返回結(jié)果做處理,直接接收數(shù)據(jù)類(lèi)型是一個(gè)對(duì)象,無(wú)法獲取返回值

此時(shí)我們需要對(duì)返回?cái)?shù)據(jù)做處理,如下;
response.text # 響應(yīng)文本數(shù)據(jù)(字符串)

把返回的數(shù)據(jù)類(lèi)型變成了dict,response.json()** 這樣就方便我們按照字典的操作去拿數(shù)據(jù)**
但是 我們現(xiàn)在的操作是要獲取導(dǎo)出文件的數(shù)據(jù),導(dǎo)出excel是一個(gè)二進(jìn)制文件:
response.content # 響應(yīng)返回的內(nèi)容(二進(jìn)制)
接下來(lái)我們按思路response.content方法來(lái)把這個(gè)二進(jìn)制文件寫(xiě)入excel中:
二、如下封裝
class Export:
"""
導(dǎo)出域
"""
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):
"""
商品:商品明細(xì)導(dǎo)出
"""
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: # 第一個(gè)參數(shù)是保存文件路徑,不加路徑就是當(dāng)前路徑
if res.status_code == 200:
return f.write(resp)
else:
return False如上,先接收二進(jìn)制文件,然后使用操作excel方法‘wb’寫(xiě)入二進(jìn)制文件
以上寫(xiě)入文件后,測(cè)試過(guò)程我們需要再讀取文件數(shù)據(jù)來(lái)斷言,如下:
class ExcelMethod:
def __init__(self, filename):
self.filename = filename
def read_excel(self, row, col):
"""
讀取導(dǎo)出文件的數(shù)據(jù)
Returns:excel單元格數(shù)據(jù)
"""
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 # 返回文件單元格數(shù)據(jù)以上是一個(gè)寫(xiě)入和讀取導(dǎo)出excel的封裝方法
值得注意的是,我用的是python內(nèi)置庫(kù)xlrd讀寫(xiě)excel文件,xls格式文件xlrd可以讀寫(xiě),且xlrd使用1.幾的版本,最新版本不支持xls文件,openpyxl庫(kù)只支持xlsx格式文件

還有一種方法,使用pandas庫(kù)也可以讀取Excel文件
到此這篇關(guān)于Python實(shí)現(xiàn)接口自動(dòng)化封裝導(dǎo)出excel和讀寫(xiě)excel數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python的Pandas時(shí)序數(shù)據(jù)詳解
這篇文章主要為大家詳細(xì)介紹了Pandas時(shí)序數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
Python使用turtle繪制有趣的龍年祝福動(dòng)畫(huà)
這篇文章主要介紹了Python的內(nèi)置庫(kù)——小海龜(turtle),它是一個(gè)非常實(shí)用的繪畫(huà)工具,不僅可以幫助我們繪制圖形,還能讓我們查看整個(gè)繪畫(huà)過(guò)程,下面我們就來(lái)看看如何使用turtle繪制有趣的龍年祝福動(dòng)畫(huà)吧2024-01-01
python中樹(shù)與樹(shù)的表示知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于python中樹(shù)與樹(shù)的表示的相關(guān)知識(shí)點(diǎn),需要的讀者們學(xué)習(xí)下吧。2019-09-09
使用CodeMirror實(shí)現(xiàn)Python3在線(xiàn)編輯器的示例代碼
這篇文章主要介紹了使用CodeMirror實(shí)現(xiàn)Python3在線(xiàn)編輯器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
Python獲取任意xml節(jié)點(diǎn)值的方法
這篇文章主要介紹了Python獲取任意xml節(jié)點(diǎn)值的方法,涉及Python操作XML節(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05
Django基礎(chǔ)CBV裝飾器和中間件的應(yīng)用示例
這篇文章主要為大家介紹了Django基礎(chǔ)CBV裝飾器和中間件的應(yīng)用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03

