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面向对象编程中的类和对象学习教程
Mar 30 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
python 常见字符串与函数的用法详解
Nov 23 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
python打开windows应用程序的实例
Jun 28 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
python3 字符串知识点学习笔记
Feb 08 Python
python集成开发环境配置(pycharm)
Feb 14 Python
python游戏开发的五个案例分享
Mar 09 Python
python如何写try语句
Jul 14 Python
python进度条显示-tqmd模块的实现示例
Aug 23 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
浅谈discuz密码加密的方式
2014/05/22 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
DOM 高级编程
2015/05/06 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python SQL查询并生成json文件操作示例
2018/08/17 Python
Python Requests库基本用法示例
2018/08/20 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
英国手机零售商:Metrofone
2019/03/18 全球购物
行政前台岗位职责
2013/12/04 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang