python日记(四)之实现一个小小的需求

测试遇到个很小的需求:发送post请求,但只需要改变其中某几个键的键值。
那首先呢,我们先搞一下单条数据进行post请求。
一、单条数据
现成的方法,直接用就ok了。

import requests
import json
#初始化payload
payload ={
	"a": "5b71249736de6472c6e6832c484fb20210203010",
	"b": "test",
	"c": [
		"c1",
		"c2",
		"c3"
	]
}
data=json.dumps(payload)
r=requests.post("post请求地址", data=data, headers={"Content-Type": "application/json"})
print(r.text)

如果有很多条数据,我们该如何呢。
二、多条请求数据
我们可以通过txt来实现,读出来后逐条请求接口。
txt数据如图所示:
在这里插入图片描述

import requests
import json
#你的txt文件所在的路径
path = r'D:\shuzilm\compare\post.txt'
f = open(path)
for line in f:
    #debug时发现每行数据有换行符,我们把换行符替换了
    data=line.replace('\n','')
    r=requests.post("post请求地址", data=data, headers={"Content-Type": "application/json"})
    print(r.text)

现在想想我们这个小小需求吧,只需要修改其中几个键的键值,那我们可以替换这几个键的键值就行。
三、替换某些键的键值
txt中我们可以只存需要修改的键的键值,这样只用初始化一次body就够了,txt如图所示:
在这里插入图片描述

import requests
import json
#初始化payload
payload ={
	"a": "5b71249736de6472c6e6832c484fb20210203010",
	"b": "test",
	"c": [
		"c1",
		"c2",
		"c3"
	]
}
path = r'D:\shuzilm\compare\post.txt'
f = open(path)
for line in f:
    #debug时发现每行数据有换行符,我们把换行符替换了
    data1=line.replace('\n','')
    #txt中两列数据我们按|分隔变为数组
    data2 = data1.split('|')
    #多列数据我们赋值就变得简单了
    payload["a"] = data2[0]
    payload["b"] = data2[1]
    r = requests.post("post请求地址", json=payload, headers={"Content-Type": "application/json"})
    print(r.text)

在新的版本的requests里面,除了对dict格式去编码以外,还可以使用json格式直接去传递,然后它就会被自动编码。这是 2.4.2 版的新加功能:
这样子是不是很简单就可以去实现了呢,而不需要像一里面需要转换为string之类的呢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值