【问题标题】:Python Flask request.data returning string only [duplicate]Python Flask request.data 仅返回字符串 [重复]
【发布时间】:2019-08-01 01:45:07
【问题描述】:

我刚开始使用 Python 和 Flask。我创建了一个基本的休息,我不会获取我使用 Postman 发送的数据。 数据:

{
    "username": "test",
    "password": "12345"
}

我的python代码

from flask import Flask, request
...

@app.route("/Test", methods=['POST'])
   def Test():
      print(request.data)
...

我可以在终端中看到它打印出b'{\n\t"username": "test",\n\t"password": "12345"\n}' 我怎样才能得到这些值?我正在寻找类似的东西:

request.data.username
request.data.password

我怎样才能使用 python 做到这一点?

顺便说一句,我尝试 request.json 并返回“无”。此外,request.form 返回了 'ImmutableMultiDict([])'。

谢谢

【问题讨论】:

  • json.loads(request.data) ?
  • 看来您必须在 Postman 中使用 application/json,然后在 request.json 中获取它(而不是 None)。 stackoverflow.com/a/20001283/1832058

标签: python flask postman


【解决方案1】:

根据flask docs,您的另一种选择是使用get_json

get_json(force=False,silent=False,cache=True)

所以你可以试试:

print(request.get_json()) # you can use force=True to force a parsing as json.

## access values:

rjson = request.get_json()

username = rjson['username']
psswd = rjson['password']

要真正确保正确发送和读取 json,请使用 MIME:application/json。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2014-12-05
    • 1970-01-01
    • 2020-01-22
    相关资源
    最近更新 更多