python requests post多层字典的方法
pyhton requests模块post方法传参为多层字典时,转换错误,
如,表单传参
{ “a”:1, “b”:{ “A”:2, “B”:3 } }
post请求后看到form data是:
a:1 b:A b:B
查看官方文档:
More complicated POST requests
Typically, you want to send some form-encoded data — much like an HTML form. To do this, simply pass a dictionary to the data argument. Your dictionary of data will automatically be form-encoded when the request is made:
payload = {‘key1': ‘value1', ‘key2': ‘value2'} r = requests.post(“http://httpbin.org/post“, data=payload) print(r.text) { … “form”: { “key2”: “value2”, “key1”: “value1” }, … }
这里说post传入的dict类型参数会被自动转化为form-encoded,查看请求后,这里的demo是一个一层的字典。多层字典传输的时候,确实会异常。
解决办法:
将第二层字典转化为json,json.dumps({“A”:2,”B”:3}),然后赋给b。
以上这篇python requests post多层字典的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python使用requests发送POST请求实例代码
本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下. 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式.服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析.具体的编码方式包括: application/x-www-form-urlencode
-
Python使用requests提交HTTP表单的方法
Python的requests库, 其口号是HTTP for humans,堪称最好用的HTTP库. 使用requests库,可以使用数行代码实现自动化的http操作.以http post,即浏览器提交一个表格数据到web服务器,为例,来说明requests的使用. 无cookie import requests url = 'www.test.org' data = {'username': 'user', 'password': '123456'} response = requests.p
-
python实现requests发送/上传多个文件的示例
1.需要的环境 Python2.X Requests 库 2.单字段发送单个文件 在requests中发送文件的接口只有一种,那就是使用requests.post的files参数, 请求形式如下: url = "http://httpbin.org/post" data = None files = { ... } r = requests.post(url, data, files=files) 而这个files参数是可以接受很多种形式的数据,最基本的2种形式为: 字典类型 元组列表
-
Python requests发送post请求的一些疑点
前言 在Python爬虫中,使用requests发送请求,访问指定网站,是常见的做法.一般是发送GET请求或者POST请求,对于GET请求没有什么好说的,而发送POST请求,有很多朋友不是很清楚,主要是因为容易混淆 POST提交的方式 .今天在微信交流群里,就有朋友遇到了这种问题,特地讲解一下. 在HTTP协议中,post提交的数据必须放在消息主体中,但是协议中并没有规定必须使用什么编码方式,从而导致了 提交方式 的不同.服务端根据请求头中的 Content-Type 字段来获知请求中的消息主体
-
python 中字典嵌套列表的方法
如下所示: >>> dict={} >>> dict['list']=[] >>> dict['list'].append([1,2,3,4]) >>> dict['list'].append([5,6,7]) >>> dict['list'].append([7,8,9,0,10]) 输出字典: >>> dict {'list': [[1, 2, 3, 4], [5, 6, 7], [7, 8,
-
python requests post多层字典的方法
pyhton requests模块post方法传参为多层字典时,转换错误, 如,表单传参 { "a":1, "b":{ "A":2, "B":3 } } post请求后看到form data是: a:1 b:A b:B 查看官方文档: More complicated POST requests Typically, you want to send some form-encoded data - much like an
-
对python requests的content和text方法的区别详解
问题: 一直在想requests的content和text属性的区别,从print 结果来看是没有任何区别的 看下源码: @property def text(self): """Content of the response, in unicode. If Response.encoding is None, encoding will be guessed using ``chardet``. The encoding of the response content is
-
Python实现生成密码字典的方法示例
本文实例讲述了Python实现生成密码字典的方法.分享给大家供大家参考,具体如下: key_data.py 文件存放组成数据,可以随时扩充及简化. #coding=utf-8 #!/usr/bin/python def year():#返回字符串类型的年份列表 year = range(1984,2018)# 常用年份列表 year_str = [] for y in year: year_str.append(str(y)) return year_str def month_or_day(n
-
python中退出多层循环的方法
1.定义标记变量:利用变量值的变化退出循环 # 第一种嵌套形式 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]] # init_i = 0 # init_j = 0 flag = True for i in range(3): for j in range(3): # print(i, j) if a[i][j] == 5: flag = False init_i = i init_j = j break if not flag: break print(init_i,
-
Python生成元组和字典的方法
目录 1.生成元组 1.1使用()生成元组 1.2使用tuple函数生成元组 1.3使用divmod函数生成元组 2.生成字典 2.1使用{}生成字典 2.2使用dict函数生成字典 1.生成元组 元组是元素按顺序组合后的产物,元组对象的类型是tuple型 含有两个元素的元组成为数据对 元组可以包含任意数量和任意类型的元素,其元素总数可以为0.1.2等,并且元素的先后顺序是由意义的.另外,元组中的元素类型没有必要一致,可以多种类型组合在一起. 元组是不可变类型,这一点与列表完全不同 1.1使用(
-
详解Python requests 超时和重试的方法
网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应. 超时又可分为连接超时和读取超时. 连接超时 连接超时指的是在你的客户端实现到远端机器端口的连接时(对应的是 connect() ),Request 等待的秒数. import time import requests url = 'http://www.google.com.hk' print(time.strftime('%Y-%m-%d %H:%M:%S')) try: html = re
-
python 使用值来排序一个字典的方法
下面先看下python 使用值排序字典的方法 In [8]: a={'x':11,'y':22,'c':4} In [9]: import operator In [10]: sorted(a.items(),key=operator.itemgetter(1)) Out[10]: [('c', 4), ('x', 11), ('y', 22)] In [11]: a={'x':11,'y':22,'c':4} In [12]: sorted(a.items(),key=lambda x:x[1
-
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
1.Python requests模块说明 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码. 在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作. 现代,国际化
-
Python requests.post()方法中data和json参数的使用方法
目录 json和dict requests.post() post请求中json和data的区别 json和dict python中的dict类型要转换为json格式的数据需要用到json库: import json <json> = json.dumps(<dict>) <dict> = json.loads(<json>) 需要注意的是: python中并没有json类型这一说法,通过json.dumps(<dict>)转换的字典对象,最后得
-
python requests.post请求404问题及解决方法
目录 问题场景 问题分析 postman测试 问题解决 结论 问题场景 有时候,在编写一段http接口请求程序时,发现代码中的header头和请求体中都是原网页中一样,但是,在实际请求时,接口却返回404,代码如下 header = { # ':authority': 'm.ctrip.com', # ':method': 'POST', # ':path': '/restapi/soa2/20405/getPCSightList', # ':scheme': 'https', 'accept'
随机推荐
- jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
- java 实现计数排序和桶排序实例代码
- 详解iOS应用开发中autoresizing尺寸自动适应属性的用法
- 详解Python import方法引入模块的实例
- ASP.NET将Session保存到数据库中的方法
- jquery实现手机发送验证码的倒计时代码
- THINKPHP项目开发中的日志记录实例分析
- Android中ToggleButton开关状态按钮控件使用方法详解
- MySQL操作数据库和表的常用命令新手教程
- 微信小程序开发探究
- innodb 库的备份注意点(由phpmyadmin引起的解决方案)
- 让低版本浏览器支持input的placeholder属性(js方法)
- jQuery Select下拉框操作小结(推荐)
- javascript getElementsByTagName
- 映彩衣的js随笔(js图片切换效果)
- 多个iframe自动调整大小的问题
- 简单介绍区分applet和application的方法
- 编写Python小程序来统计测试脚本的关键字
- Android嵌套RecyclerView左右滑动替代自定义view
- 写一个用户在线显示的程序