python - Flask gettin 'NoneType' 对象不可下标
问题描述
我正在制作一个获取两个数据“id”和“name”的 Api,但我'NoneType' object is not subscriptable"
出错了name = request.json['Name']
from flask import Flask, jsonify, request, Response #import flask library
from checking import checker
app = Flask(__name__)
@app.route("/v1/products", methods=["GET", "POST"])
def getData():
user_id = request.json['id']
name = request.json['Name']
data = {'id' : user_id, 'Name' : name}
flag = checker(data)
if flag == True:
return 200, 'OK'
else:
return 403, 'Forbidden'
if __name__ == '__main__':
app.run(host='localhost', debug=True)
要为 API 发送数据,我运行以下代码:
curl -X POST -H "Content-Type: v1/products" -d '{'id' : '123', 'Name' : 'mesa'}' http://localhost:5000/v1/products
我做错了什么?
解决方案
问题不在于您的烧瓶代码,而在于您的 curl 请求。您没有正确设置内容类型和正文,因此您的 API 端点没有要处理的 json。
您需要将命令的第一部分更改为:curl -X POST -H "Content-Type: application/json"
您的请求正文中的引号也可能存在问题,您需要转义或修改引号,以免它们模棱两可。
推荐阅读
- javascript - 多个按钮 P5JS
- python - 如何比较python中的列表?
- excel - 使用 excel vba 下载 csv 文件的 URL
- r - 如何在 R 中创建一个以 y 轴为频率而不是密度的条形图?
- python - 如果在 TensorFlow Object Detection API V2 中训练模型时使用自定义 TF 记录,我会一直遇到此错误
- javascript - 使用作者 ID 添加角色
- fortran - Fortran OPEN 函数接收到错误的文件名
- python - 向 concurrent.futures.ProcessPool 中的所有进程提交代码以执行
- python - 在 pandas 中查找具有一列值作为另一列中的子字符串以及其他 OR 条件的行
- express - 如何使用 hbs 进行 Express 异步搜索渲染?