python post请求参数为excel_python使用xlrd读取excel数据作为requests的请求参数,并把返回的数据写入excel中...

该博客介绍了一个Python脚本,它利用xlrd库读取Excel文件中的数据,将第一列数据作为JSON格式的POST请求参数,向指定URL发送请求。响应内容被写入到Excel的第二列,并与预期结果对比,根据对比结果标记为成功或失败。此外,文章还指出了在执行过程中需要注意的两个问题。

实现功能:

从excel中的第一列数据作为post请求的数据,数据为json格式;把post返回的结果写入到excel的第二列数据中,并把返回数据与excel中的预期结果做比较,如果与预期一致则在案例执行结果中写入成功,否则写入失败。

每一行的数据都不一样,可实现循环调用

# !/usr/bin/env python

# -*- coding:utf-8 -*-

#import xlwt #这个专门用于写入excel的库没有用到

import xlrd

from xlutils.copy import copy

import requests

import json

old_excel = xlrd.open_workbook('excel.xls')

sheet = old_excel.sheets()[0]

url = 'http://10.1.1.32:1380/service/allocFk2'

headers = {'Content-Type': 'application/json'}

i = 0

new_excel = copy(old_excel)

for row in sheet.get_rows():

data = row[0].value

response = requests.post(url=url, headers=headers, data=data)

text = response.text

#使用json.loads可以把Unicode类型,即json类型转换成dict类型

text = json.loads(text)["returnMsg"] #屏蔽这行代码即可把返回的完整数据写入文件中

ws = new_excel.get_sheet(0)

ws.write(i,1,text)

new_excel.save('excel.xls')

old_excel = xlrd.open_workbook('excel.xls')

new_excel = copy(old_excel)

i = i+1

执行前的excel格式:

发送报文

返回报文

校验字符

案例执行结果

{

"projectId" :"0070",

"projectAllocBatch" :"1",

"serviceCode" :"GT012",

"seqNo" :"180800272201GT51286712",

"tranTimeStamp" :"20180817102244",

"sign" :"2dbb89a6bd86b2af1ff6a76c35c05284"

}

交易失败

{

"projectId" :"0070",

"projectAllocBatch" :"1",

"serviceCode" :"GT012",

"seqNo" :"180800272201GT51286713",

"tranTimeStamp" :"20180817102244",

"sign" :"2dbb89a6bd86b2af1ff6a76c35c05284"

}

交易失败

{

"projectId" :"0070",

"projectAllocBatch" :"1",

"serviceCode" :"GT012",

"seqNo" :"180800272201GT51286713",

"tranTimeStamp" :"20180817102244",

"sign" :"2dbb89a6bd86b2af1ff6a76c35c05284"

}

交易成功

执行后的结果:

调试过程中遇到的问题:

1、一开始在for循环的最后没有增加这两行代码

old_excel = xlrd.open_workbook('excel.xls')

new_excel = copy(old_excel)

这样的话new_excel永远都是一开始获取到的那一个,只会把最后一个循环返回的结果写入文件,因为之前的全部都被一开始获取的那个old_excel给覆盖了,所以每次执行完写入操作以后都要重新做一次copy操作,这样就能保证new_excel是最新的。

2、注意执行程序之前要把excel关闭,否则会报错

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值