formdata 嵌套_Requests发Post请求data里面嵌套字典

一、Post请求,data里面嵌套字典

Requests发Post请求,data里面嵌套字典的常见形式如下:

info = {

"appid": "123",

"checkin_type": "6",

"role": "1",

"stunum": "15812086122"

}

form_data = {

'Data': '%s' % info,

'MsgType': 'APP_SEND_CARDCHECKIN_BYSTUNUM'

}

result = requests.post(url, data=form_data)

需提别注意的是,一定要用'Data': '%s' % info格式化输出这种形式把嵌套的字典传给Data,如果直接将info当做value赋值给Data,即,'Data': info,请求是不成功的

{'error_code': '505', 'error_msg': 'Data格式不正确参数验证失败'}

通常当post传入data参数时候,请求格式一般为Content-Type: application/x-www-form-urlencoded格式,按照官方的说法数据字典在发出请求时会自动编码为表单形式,所以是不是因为这个原因,data中嵌套的字典需要处理成字符串才能正常发post,这点暂存疑惑???

二、Post常见用的请求方式

传参为json格式

通过抓包后,转换为raw格式,可以看到Content-Type: application/json

import requests

import josn

payload = {

'a': 1

'b': 2

}

# 方法一,将payload转为josn格式

payload = josn.jump(payload)

res = requests.post(url, data=payload)

# 方法二,直接用josn参数传递

res = requests.post(url, josn=payload)

传参为form-data格式

通过抓包后,转换为raw格式,可以看到Content-Type: application/x-www-form-urlencoded,此时直接把字典payload传给参数data即可,此处就需要注意的是,如果payload里面嵌套字典,切记要先将其转为字符串形式,然后再入参

import requests

payload = {

'a': 1

'b': 2

}

res = requests.post(url, data=payload)

传参带文件

post上传文件,首先需要构造file,格式如下,fp为文件路径,然后将构造好的file传给files即可

import requests

file = {

'file_name': open(fp, 'rb')

}

res = requests(url, files=file)

OK!

~

~

~

不积跬步,无以至千里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值