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查看多台服务器进程的脚本分享
Jun 11 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
python单元测试unittest实例详解
May 11 Python
使用python实现省市三级菜单效果
Jan 20 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
python对象销毁实例(垃圾回收)
Jan 16 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
javascript 随机展示头像实现代码
2011/12/06 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
python with (as)语句实例详解
2020/02/04 Python
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
工程业务员工作职责
2013/12/07 职场文书
企业出纳岗位职责
2014/03/12 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
MySQL 覆盖索引的优点
2021/05/19 MySQL
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis