python flask解析json数据不完整的解决方法


Posted in Python onMay 26, 2019

当使用Python的flask框架来开发网站后台,解析前端Post来的数据,通常都会使用request.form来获取前端传过来的数据,但是如果传过来的数据比较复杂,其中右array,而且array的元素不是单个的数字或者字符串的时候,就会出现解析不到数据的情况,比如使用下面的js代码向python flask传递数据

$.ajax({
"url":"/test",

"method":"post",

"data":{



"test":[




{"test_dict":"1"},




{"test_dict":"2"},




{"test_dict":"3"},




]



}

}
)

当我们使用flask的request.form获取前端的数据时,发现获取到的数据是这样的:

ImmutableMultiDict([('test', 'test_dict'), ('test', 'test_dict'), ('test', 'test_dict')])

???我的Post数据呢?给我post到哪里去了???

这里我就去网上查解决办法,但是网上哪些删么使用reqeust.form.getlist()方法好像都对我无效,但是又找不到其他的解决方案?怎么办?

规范一下自己的请求,在前端请求的时候设置一个Json的请求头,在flask框架钟直接使用json.loads()方法解析reqeust.get_data(as_text=True),就可以解析到完整的post参数了!

前端:

$.ajax({
"url":"/test",

"method":"post",

"headers":{"Content-Type": "application/json;charset=utf-8"},//这一句很重要!!!

"data":{


"test":[




{"test_dict":"1"},




{"test_dict":"2"},




{"test_dict":"3"},



]


}

}

)

python代码:

@app.route("/test",methods=["GET","POST"])
def test():
  print(json.loads(request.get_data(as_text=True)))
  return ""

然后看看后台打印的信息:

* Serving Flask app "test_flask.py"
* Environment: development
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
{'test': [{'test_dict': '1'}, {'test_dict': '2'}, {'test_dict': '3'}]}
127.0.0.1 - - [25/May/2019 22:43:08] "POST /test HTTP/1.1" 200 -

问题解决,可以解析到完整的json数据啦!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自动化测试工具Splinter简介和使用实例
May 13 Python
python中的内置函数getattr()介绍及示例
Jul 20 Python
Python操作CouchDB数据库简单示例
Mar 10 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
简单谈谈python的反射机制
Jun 28 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 Python
python 爬取腾讯视频评论的实现步骤
Feb 18 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
如何使用pyinstaller打包32位的exe程序
May 26 #Python
让你Python到很爽的加速递归函数的装饰器
May 26 #Python
Django框架模板的使用方法示例
May 25 #Python
Django框架搭建的简易图书信息网站案例
May 25 #Python
Django框架实现的分页demo示例
May 25 #Python
Flask框架工厂函数用法实例分析
May 25 #Python
Python中Numpy mat的使用详解
May 24 #Python
You might like
PHP 输出缓存详解
2009/06/20 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
经贸日语专业自荐信
2014/09/02 职场文书
解除劳动合同证明书
2014/09/26 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS