TypeError: 'ExcelData' object is not iterable


今天寫了個測試的代碼,結果在執行test_register.py文件在調用readexcle.py的時候一直報錯TypeError: 'ExcelData' object is not iterable,最后發現是test_register.py模塊調用readexcle.py模塊時,忘記調用方法了,導致返回值有誤,折騰了半天,是個教訓。

 下面是readexcle.py模塊(讀取excle內的數據並返回讀取到的數據):

 1 import xlrd
 2 
 3 class ExcelData():
 4     def __init__(self,data_path,sheetname):
 5         self.data_path = data_path                                 # excle表格路徑
 6         self.sheetname = sheetname                                 # excle表格內sheet
 7         self.data = xlrd.open_workbook(self.data_path)             # 打開excle表格
 8         self.table = self.data.sheet_by_name(self.sheetname)       # 切換到相應sheet
 9         self.keys = self.table.row_values(0)                       # 第一行作為key值
10         self.rowNum = self.table.nrows                             # 獲取表格行數
11         self.colNum = self.table.ncols                             # 獲取表格列數
12         # print(self.rowNum)
13         # print(self.colNum)
14 
15     def readExcle(self):
16         if self.rowNum<2:
17             print("excle內數據行數小於2")
18         else:
19             L = []
20             for i in range(1,self.rowNum):
21                 sheet_data = {}
22                 for j in range(self.colNum):
23                     sheet_data[self.keys[j]] = self.table.row_values(i)[j]
24                 L.append(sheet_data)
25             #print(type(L))
26             return L
27 
28 if __name__ == '__main__':
29     data_path = "F:\\KEJINSUO_interface\\Case\\interface_data.xlsx"
30     sheetname = "注冊"
31     get_data = ExcelData(data_path,sheetname)
32     print(get_data.readExcle())

 

下面是test_register.py模塊(調用readexcle.py模塊,使用readexcle.py返回值做參數):

 1 import requests
 2 import json
 3 import unittest
 4 from readexcle import ExcelData
 5 
 6 class Regist(unittest.TestCase):
 7     def setUp(self):
 8         self.headers = {"Content-Type":"application/json"}
 9         self.data_path = "F:\\KEJINSUO_interface\\Case\\interface_data.xlsx"
10         self.sheetname = "注冊"
11         self.shuju = ExcelData(self.data_path,self.sheetname).readExcle()        #錯誤在此行,未調用readExcle方法  
12 
13     def test_regist(self):
14         for a in self.shuju:
15              self.url = "http://test.jkkjs.cn:44444/api/register/createUser"
16              self.pars = {"data": {
17                          "mobile":a['mobile'],
18                           "password": a['password'],
19                           "verifyCode":a['verifyCode']
20                           }
21              }
22              self.par_json = json.dumps(self.pars)
23              res = requests.post(self.url,data=self.par_json,headers=self.headers)
24              #根據返回數據判斷登錄結果
25              if "注冊成功" in res.text:
26                   print("注冊成功")
27              elif "手機號碼已注冊" in res.text:
28                   print("手機號碼已注冊")
29              elif "參數錯誤" in res.text:
30                   print("提交參數錯誤")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM