python - Flask:无法解码使用请求提交的传入 JSON

标签 python json dictionary flask

我在尝试解码以 json 形式发送到我的服务器的 python 字典时遇到问题。 这是我的应用程序中的内容:

payload = {'status':[bathroomId,item,percentage,timestamp]}
r=requests.post(url,None,json.dumps(payload))

这是我在 Flask 服务器中所做的事情:

req = request.get_json()
print req['status']

当我尝试打印 req['status'] 的内容时,Python 似乎无法将其识别为字典,并且出现内部服务器错误。

我尝试打印req,但得到None

我错过了什么?

最佳答案

除非您设置 Content-Type标题为 application/json在您的请求中,Flask 不会尝试解码在您的请求正文中找到的任何 JSON

相反,get_json将返回None (这就是您现在所看到的)。

因此,您需要设置 Content-Type您的请求中的 header 。

幸运的是since version 2.4.2 (released a year ago) , requests 有一个辅助参数来发布 JSON;这将为您设置正确的标题。使用:

requests.post(url, json=payload)

或者(例如使用请求 < 2.4.2),您可以自己设置 header :

requests.post(url, data=json.dumps(payload), headers={"Content-Type": "application/json"})
<小时/>

以下是 Flask 中的相关代码:

关于python - Flask:无法解码使用请求提交的传入 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231188/

相关文章:

django - Python:如何执行生成的代码?

python - python实体处理后如何将数据保存在STL文件中?

dictionary - 从 golang 中的 channel 响应填充 map 值

c++ - 如何在 C++ 中混合使用数组和映射?

python - 将 C++ 映射转换为 Python 字典

python - 大数模矩阵求逆

java - jackson 无法识别的属性(property)异常

java - 从 JSON 中提取字节数组

javascript - 如何在 javascript/JQuery 中将 json 对象值清除为空?

python - 使用宽松字典映射列中的值