当前位置:   article > 正文

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

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

如果有很多条数据,我们该如何呢。
二、多条请求数据
我们可以通过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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

现在想想我们这个小小需求吧,只需要修改其中几个键的键值,那我们可以替换这几个键的键值就行。
三、替换某些键的键值
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/337282
推荐阅读
相关标签
  

闽ICP备14008679号