一、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常见用的请求方式

  1. 传参为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)
  1. 传参为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)
  1. 传参带文件

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

file = {
'file_name': open(fp, 'rb')
}
res = requests(url, files=file)

OK!

~

~

~

不积跬步,无以至千里

Requests发Post请求data里面嵌套字典的更多相关文章

  1. requests发送post请求的一些疑点

    前言 在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法.一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要 ...

  2. Python requests模块params、data、json的区别

    json和dict对比 json的key只能是字符串,python的dict可以是任何可hash对象(hashtable type): json的key可以是有序.重复的:dict的key不可以重复. ...

  3. 爬虫——控制台抓包和requests.post()发送请求

    控制台抓包 打开方式及常用选项 1.打开浏览器,F12打开控制台,找到Network选项卡 2.控制台常用选项 1.Network: 抓取网络数据包 1.ALL: 抓取所有的网络数据包 2.XHR:抓 ...

  4. requests模块(请求接口)

    下面分别是get,post,入参json,添加cookie,添加header,上传/下载文件 的接口请求举例: import requests   #导入模块 #1.发get请求 url = 'htt ...

  5. 第四十节,requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/latest/use ...

  6. requests(二): json请求中固定键名顺序&消除键和值之间的空格

    继上一篇requests发送json请求的文章后,实际工作中遇到了以下2种情况. 1:服务端要求json字符串,键名的顺序固定  2.服务端对于接收到的json数据中,若key和value之间有空格, ...

  7. 全--教程API, gem 'rest-client'(用于发简单请求); 请求测试;

    安装:rest-client4400✨ gem install rest-client 一个简单的HTTP和REST client for Ruby. 可以用它来发HTTP请求 基本用法: requi ...

  8. Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据

    Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...

  9. requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  一.下载 requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/lates ...

随机推荐

  1. python3的数据类型转换问题

    问题描述:在自我学习的过程中,写了个登陆,在input处,希望能够对数据类型进行判断,但是因为python3的输入的数据会被系统默认为字符串,也就是1,1.2,a.都会被系统默认为字符串,这个心塞啊, ...

  2. Markdown快速使用指南

    Markdown 是一种轻量级的标记语言,他简洁.高效,目前被越来越多的写作爱好者,撰稿者广泛使用.Markdown的语法十分简单.常用的标记符号也不超过十个,这种相对于更为复杂的 HTML 标记语言 ...

  3. Uber自动驾驶卡车正式运营,是否会给卡车司机彻底“宣判死刑”?

    随着科技的快速迭进和嬗变,大众的生活也在被全面革新和改变.不过有些改变是显性的,比如PC和智能手机的出现.有些改变却是隐性的,比如太空科技.云计算等.而在当下,又一个看似与大众生活紧密相关,但一般人却 ...

  4. 良知VS野心,苹果为何要翻新手机?

    前不久,苹果在大中华区推出了iPhone和iPad换机服务,消息一经发出便引发了果粉们的狂欢,那些丢弃在抽屉里的iPhone4S们看上去终于有着落了,也更坚定了"我是果粉,我骄傲" ...

  5. mabatis中的元素属性

    resultMap属性id 唯一标识type 返回类型extends 继承别的resultMap,可选关联其他标签id 设置主键使用,使用此标签配置映射关系(可能不止一个)result 一般属性的配置 ...

  6. AWS CloudFront / 亚马逊CDN使用教程

    步骤: 1. 打开CloudFront服务之后,首先需要选择分发类型.分发类型分为一般的静态文件分发和流媒体分发,即Web和RTMP,我的站点即选择Web类型. 2. CDN回源设定. a. 首先要填 ...

  7. Autotestplat体验中心

    web端 移动端 可戳[阅读原文]进行体验

  8. mongodb游标快照

    示例代码 1. 初始数据 > db.snapshot_test.find() { "_id" : ObjectId("560ba37c694895b2de42254 ...

  9. nginx 502排错

    线上一台机器(该论坛所在机器)近期频繁出现502,每100次访问就会出现10次,这频率也太高了.于是开始了我的502排查之旅 ps aux |grep -c php 结果为200 netstat -a ...

  10. IDEA Java 类注释、方法注释模板(可实现自动参数使用生成)

    JAVA 类文件注释设置 设置地方: 模板 /** * <p> * $description * </p> * * @author Tophua * @since ${DATE ...