python request post请求body中有json数组
今天被这个卡了好久,最后解决发现是个小问题,哈哈
记录:
用request发送post请求,原来当body都是普通的字符串和数字时一切顺利,今天遇到了body里面有json数组,结果就是报参数错误
解决方法很简单,在json数组前面加json.dumps([{"a":1,"b":2},{json2}]),就像这个样子,一定要注意该函数要写在中括号的外面,今天搞了半天就是因为把函数写在了单个json的外面
程序:
# coding: UTF-8
import requests
import json
url = "https://XXXXX"
headers = {'UserName': 'XXXXX',
'AccessToken': 'XXXXX' }
data={
'UserName': 'XXXXX',
'DeviceId': 'XXXXXXXXX',
'AppVersion': 'XXXXX'
'Datas': json.dumps
(
[
{"DeviceId": "XXXXXXX",
"DeviceType": "XXXXX",
"Time": "2017-08-28 10:32:28",
"TimeZone": 2
"PhoneTime": "2017-08-28 10:32:28"},
{json2},
{json3}
]
)
}
r = requests.post(url, headers=headers, data=data)
print r.json()
在这里补充一下出现这个问题的原因,json数组的实际格式也是字符串,但是在Python中会将数组格式识别为list,所以会出错
另外付上json格式标准(注意都要用双引号)
[
{"A":"1"
"B":[{
"A":"1"
}]
}
]
但是以下格式是错的
{
[
{"A":"1"
"B":[{
"A":"1"
}]
}
]
}
原因是json里的数据需要一对一,改成下面这样就对了
{
"C":[
{"A":"1"
"B":[{
"A":"1"
}]
}
]
}
python request post请求body中有json数组的更多相关文章
- ajax异步获取请求,获得json数组后对数组的遍历
如果响应数据是以html的形式发出来的,即 response.setContentType("text/html;charset=utf-8"); 那么一般用下面这种方式,但是要注 ...
- python接口测试—get请求(一)
python 做借口测试用到的是requests模块,首先要导入requests库,pip install requests 1.get直接请求方式 以豆瓣网为例: url = 'https://re ...
- highCharts怎样实现json数组数据的图形展示
昨天花了一天的时间学习了一下highcharts.主要的内容差点儿相同都看了一遍,然后试着写了一个完整的demo,期间可谓百转千回.费了不少功夫.终于还是实现了我所想要的效果图,接下来我将怎样实现统计 ...
- Python中http请求方法库汇总
最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,分享给大家,具体内容如下所示: 一.python自带库----urllib2 python自带 ...
- python+request+robot framework接口自动化测试
python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...
- Js前端传递json数组至服务器端并解析的实现。
最近做的一个小项目中需要将json数组数据传递到服务器端进行保存,现分享一下解决思路. 环境:EasyUi+Mvc 4.0 如下: 在上述截图中的红色圈起来的部分,需要在点击保存后通过一次ajax请求 ...
- python request
python request a. 客户端向服务端发送多层字典的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 obj = ...
- python Request模块
---恢复内容开始--- Request的五种请求方式: request.get() request.post() request.head() requst.put() request.patch( ...
- 【Spring学习笔记-MVC-6】SpringMVC 之@RequestBody 接收Json数组对象
作者:ssslinppp 1. 摘要 程序流程: 前台使用ajax技术,传递json字符串到后台: 后台使用Spring MVC注解@RequestBody 接受前台传递的json字符串, ...
随机推荐
- sublime px转rem插件
http://www.cnblogs.com/phoebewang00/p/5593699.html lime 插件- px 转rem 一个CSS的px值转rem值的Sublime Text 3自 ...
- No module named 'requests'---问题解决记录
今天在用Pycharm执行脚本时,报错.如下: 问题排查: 1,检查是否安装了requests cmd输入命令:pip install requests 提示有新版本可以升级,那 我就升级了. 然后输 ...
- Flask学习 3 url_for的使用
#!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: cxa @file: flask0 ...
- flask-script实现自动刷新页面调试
本文flask==1.0.2 1.导入extension包 from flask_script import Manager 2.使用manager管理工具 app = Flask(__name__) ...
- xpath使用技巧
爬虫中我们对于元素的定位有多种方法,大致有: Beautifulsoup.Xpath和正则表达式三种方式 其中效率比较为: Beautifulsoup<Xpath<正则表达式 习惯了使用B ...
- EZOJ #387字符串
分析 似乎ttl的模拟赛t3总是折半搜索? 先把所有串转化为每个字母的0/1状态 之后我们将所有字符串分为两半 分别枚举状态 我们发现只有左右两边的字母状态相等才能保证这个集合合法 所以我们在搜左半边 ...
- CSS-格式化上下文(Formatting Context)
Formatting Context:指页面中的一个渲染区域,并且拥有一套渲染规则,他决定了其子元素如何定位,以及与其他元素的相互关系和作用. BFC 块级格式化上下文,它是指一个独立的块级渲染区域, ...
- 【The type javax.servlet.http.HttpServletRequest cannot be resolved】解决方案
是缺少serverlet的引用库,解决如下 1.工程右键-properties->java build path 2.在java build path的libraries tab页中选择Add ...
- 同余dp
先验知识: 余数的计算公式:c = a -⌊ a/b⌋ * b 其中,⌊ ⌋为向下取整运算符,向下取整运算称为Floor,用数学符号⌊ ⌋表示 题目: Consider an arbitrary se ...
- 20190816 On Java8 第六章 初始化和清理
第六章 初始化和清理 利用构造器保证初始化 在 Java 中,类的设计者通过构造器保证每个对象的初始化. 构造器名称与类名相同. 在 Java 中,对象的创建与初始化是统一的概念,二者不可分割. 方法 ...