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

 更新时间:2019年05月26日 10:38:06   作者:钟摆人  
这篇文章主要介绍了python flask解析json数据不完整的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

当使用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 中的复数问题

    这篇文章主要介绍了在Python 中的复数问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • python人工智能tensorflow优化器Optimizer算法汇总

    python人工智能tensorflow优化器Optimizer算法汇总

    这篇文章主要为大家介绍了python人工智能tensorflowtf优化器Optimizer算法汇总,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Appium+Python实现简单的自动化登录测试的实现

    Appium+Python实现简单的自动化登录测试的实现

    这篇文章主要介绍了Appium+Python实现简单的自动化登录测试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python中的__slots__示例详解

    Python中的__slots__示例详解

    在python新式类中,可以定义一个变量__slots__,它的作用是阻止在实例化类时为实例分配dict,下面这篇文章主要给大家介绍了关于Python中__slots__的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • Python pymsql模块的使用

    Python pymsql模块的使用

    这篇文章主要介绍了Python pymsql模块的使用,帮助大家我们利用 python 语言与 mysql 进行链接,感兴趣的朋友可以了解下
    2020-09-09
  • Python的条件控制 if 语句详解

    Python的条件控制 if 语句详解

    Python的 if 语句用来「控制代码」的执行,「判断条件成立」时执行一段代码,判断条件「不成立」时执行另一段代码,本文就给大家详细讲讲Python的条件控制 if 语句,需要的朋友可以参考下
    2023-08-08
  • Numpy之布尔索引的实现

    Numpy之布尔索引的实现

    本文主要介绍了Numpy之布尔索引的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python中schedule模块关于定时任务使用方法

    Python中schedule模块关于定时任务使用方法

    这篇文章主要介绍了Python中schedule模块关于定时任务使用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • python linecache 处理固定格式文本数据的方法

    python linecache 处理固定格式文本数据的方法

    今天小编就为大家分享一篇python linecache 处理固定格式文本数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python中字节数组和16进制字符串转换方式

    Python中字节数组和16进制字符串转换方式

    这篇文章主要介绍了Python中字节数组和16进制字符串转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论