Python-Requests.post方法中,传参data与json的区别
Python3的requests.post()方法的源码:
def post(url, data=None, json=None, **kwargs):r"""Sends a POST request.:param url: URL for the new :class:`Request` object.:param data: (optional) Dictionary (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`.:param json: (optional) json data to send in the body of the :class:`Request`.:param \*\*kwargs: Optional arguments that ``request`` takes.:return: :class:`Response <Response>` object:rtype: requests.Response"""return request('post', url, data=data, json=json, **kwargs)
从上述源码中看出,参数中明确的参数是data和json
data与json2个参数,类型既可以是str,也可以是dict
区别如下:
不管json是str还是dict,如果不指定headers中的content-type,默认为application/json
data参数为dict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式,此时数据可以从request.POST里面获取,而request.body的内容则为a=1&b=2的这种形式,注意,即使指定content-type=application/json,request.body的值也是类似于a=1&b=2,所以并不能用json.loads(request.body.decode())得到想要的值
data参数为str时,如果不指定content-type,默认为application/json
用data参数提交数据时,request.body的内容则为a=1&b=2的这种形式,用json参数提交数据时,request.body的内容则为’{“a”: 1, “b”: 2}'的这种形式
因此,拿注册接口来说明,有两种实现方式:
Python-Requests.post方法中,传参data与json的区别相关推荐
- python post json参数,Python requests.post方法中data与json参数区别详解
在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...
- python request.post 字典参数以json_Python requests.post方法中data与json参数区别详解
在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...
- python 构造函数传参_C++和python混合编程之在python类构造函数中传参方法
C++和python混合编程 零.前言 一.说明 二.测试代码 1.C++代码 2.python代码 三.运行结果 零.前言 C++是一门高效率的语言,Python是一门简单易学的脚本语言,现在Pyt ...
- Python字符串的修改以及传参
前两天去面试web developer,面试官提出一个问题,用JavaScript或者Python实现字符串反转,我选择了Python,然后写出了代码(错误的): 1 #!/usr/bin/env p ...
- vue父页面调用子页面及方法及传参,鼠标光标定位
项目场景: vue父页面调用子页面及方法 问题描述 vue中父界面调用子界面及方法时界面可以调用,但是调用方法的时候第一次报错,但是关掉界面再次重新打开就没问题了 原因分析: 在我之前添加鼠标指针定位 ...
- 关于Python、C语言的传参问题
关于Python与c语言的传参问题 Python中 c语言中 要理解Python中的变量与c语言中的变量是不同的.很重要!!!!!!!!!!!!!!!!! 我们都知道函数的参数分为形参和实参. 形参就 ...
- java jsp 传递参数的方法,jsp传参方法小结
一.jsp页面到jsp页面## 1.从a.jsp传递 //将参数值为aaa,参数名test的参数传递到b.jsp页面中 2.在b.jsp接收 System.out.println("test ...
- java中的就近原则、方法中值传递和引用传递的区别、什么是构造方法、this关键字用法、什么是封装
你知道java中的就近原则嘛? package com.Test.java; /*** * 在java里面有一个"就近原则"详情可以参照下面代码**/public class Ac ...
- 一个json传参的错误:JSON parse error: Unrecognized token ‘xxx‘{ “timestamp“: “2022-03-06T16:06:29.866
一个json传参的错误: JSON parse error: Unrecognized token 'xxx' { "timestamp": "2022-03-0 ...
最新文章
- 真AI用钱表达:这家少年班毕业生创办的AI公司三年就盈利,增速300%
- leetcode-13-罗马数字转整数
- C#简易通讯录的开发试题
- 系统级alias vs Oracle ADR功能
- 拿下京东榜单第五首战告捷,看联想手机如何上演王者归来
- Day11-递归性能测试
- Arthas - Java 线上问题定位处理的终极利器
- Highcharts 宽度溢出容器
- spark学习-31-spark2.2.0中Utils.getCallSite()的作用
- 利用layui来完成垂直和侧边导航的小案例
- Sudo: unable to initialize policy plugin 解决方法
- php与ununtu通信,Ubuntu 20.04 LTS 已引入 PHP 7.4
- .net 2.0 服务器应用程序不可用 解决方案集
- Atitit 业务领域体系分类 目录 1. 按照互联网企业类型以及只是体系类的分类	2 2. 电子商务	2 3. **通信类社交 Im类 em	2 4. **信息搜索类爬虫	2 4.1. 媒体
- 迅雷连接转化为http链接
- Arduino 利用ADS1115 AD转换模块进行数据读取
- R语言中的函数5:purrr:map()
- 设计图标(logo)
- 【SVAC】SVAC标准简介
- 兔子与兔子 字符串hash