Postman调用Flask机器学习API遇错求助:需传file_path与JSON数据
解决方案:Flask API同时接收file_path参数与JSON输入数据
一、Flask端代码调整
要同时接收查询参数和JSON请求体,需分别通过request.args和request.get_json()获取数据,示例代码如下:
from flask import Flask, request, jsonify # 导入你的机器学习模型模块 import your_model app = Flask(__name__) @app.route('/predict', methods=['POST']) def predict(): # 获取URL查询参数中的file_path file_path = request.args.get('file_path') if not file_path: return jsonify({'error': '未提供file_path参数'}), 400 # 获取请求体中的JSON数据 input_data = request.get_json() if not input_data: return jsonify({'error': '未提供JSON格式的输入数据'}), 400 # 执行模型预测逻辑 try: prediction_result = your_model.predict(file_path, input_data) return jsonify({'prediction': prediction_result}) except Exception as e: return jsonify({'error': f'预测失败:{str(e)}'}), 500 if __name__ == '__main__': app.run(debug=True)
二、Postman请求配置步骤
- 请求方法与URL:选择
POST方法,输入API地址(如http://localhost:5000/predict) - 添加file_path参数:切换到
Params标签,新增参数:- Key:
file_path - Value: 你的模型文件/数据文件的实际路径(如
/home/user/models/model_v1.pth)
- Key:
- 配置JSON请求体:切换到
Body标签,选择raw格式,右侧下拉菜单选JSON,输入你的输入数据,示例:{ "feature1": 0.85, "feature2": 2.1, "feature3": 1.0 } - 发送请求:点击
Send按钮,即可同时传递参数和JSON数据。
三、常见错误排查
- 避免混合请求格式:不要同时使用
form-data和raw JSON,这会导致Flask无法正确解析JSON数据 - 检查请求头:Postman选择
raw JSON时会自动添加Content-Type: application/json请求头,不要手动修改或删除 - 路径参数替代方案:如果想用路径参数(如
/predict/<file_path>),需对路径中的特殊字符(如斜杠)进行URL编码,否则会导致路由匹配失败,推荐优先使用查询参数
内容的提问来源于stack exchange,提问作者Aditya sharma
相关产品推荐
相关产品推荐

