前言:
python读取excel需要用到xlrd模块
解释:
python读取Excel文件内容,并将获取到的数据通过接口提交。
脚本实现了通过接口进行设备的批量注册,通过循环操作的方法,不断获取某行某列的数据,将数据作为参数提交到后台实现不同型号设备的批量注册
预期结果如下:
小试牛刀,循环获取2个不同的设备型号,并将不同的设备型号提交到后台实现设备注册
一、python读取Excel文件内容
打开excle,写入绝对路径
xlrd = xlrd.open_workbook(r'C:\\Users\\Administrator\\Desktop\\SN.xlsx')
通过索引获取工作表,即Excel中左下方的sheet表格,0代表sheet1
table = xlrd.sheets()[0]
获取一共多少行
rows = table.nrows
获取第1列的整列的内容,索引从0开始
col = table.col_values(0)
获取第i+1行的内容,索引从0开始
row = table.row_values(i)
获取单元格值,第i+1行第1列,索引从0开始
data = table.cell(i, 0).value
二、将获取的数据通过接口进行提交
将上面从Excel中获取到的data数据,在对应的参数中写入对应的值
url ="http://xx.xx.cn:8888/xx/xxx/1.0.0/xxxx/robots/xxx"
b = random.randint(1, 100000)
date = {
# "name": "接口注册%d" % b,
"name": b,
"identifier": data,#上面获取到的data数据
"robotType":5,
"robotModel": "xxx-xx-010",
"msUserType": 2,
"msOrganizeId": "6f420b13c7xxxxxxxc",
"msToken": "7209bc1b52f4xxxxxxxxx",
}
r = requests.post(url, data=date)
三、完整脚本代码
获取Excel中第一列第4行以及第5行的数据,将这些数据当做设备型号提交给后台实现批量注册
注意:文件名称不要和导入的库名称一样,比如下方的打开Excel的操作中,xlr的命名不要写成xlrd,否则报错如下:AttributeError: ‘Book’ object has no attribute ‘open_workbook’
import xlrd
import random
import requests
i = 3
while i < 5:
# 对excel的操作
# 打开excle
xlr = xlrd.open_workbook(r'C:\\Users\\Administrato\\Desktop\\SN.xlsx')
# 通过索引获取工作表
table = xlr.sheets()[0]
# print(table)
# 总共多少行
rows = table.nrows
print('\n'"文件总行数%s" %rows)
# 获取第1列的整列的内容
col = table.col_values(0)
print('\n'"文件第1列的整列的内容%s" %col)
# 获取第i+1行的内容,索引从0开始
row = table.row_values(i)
print('\n'"文件第i+1行的内容%s" %row)
# 获取单元格值,第几行第几列,索引从0开始
data = table.cell(i, 0).value
print('\n'"第1列第%d"%(i+1),"行的数据,设备SN号为:%s"%data)
url = "http://xx.xxxx.cn:8888/xxxx/xxxx/1.0.0/xxxx/robots/xxxxx"
b = random.randint(1, 100000)
date = {
# "name": "接口注册%d" % b,
"name": b,
"identifier": data,
"robotType":5,
"robotModel": "xxx-xxxx-010",
"msUserType": 2,
"msOrganizeId": "6f420b13c74xxxxx",
"msToken": "7209bc1b52xxxx",
}
r = requests.post(url, data=date)
print('\n'"设备名称:%d" %b)
print('\n'"状态:", r.text)
print('\n'"头部信息:", r.headers)
print('\n'"cookie信息:", r.cookies)
# print('\n'"token信息:", t)
i += 1
# assert r.status_code == 200