我创建了以下简单的flask应用程序,该应用程序显示来自机器学习模型的预测值,并根据需要呈现index.html,直到创建json.request为止。然后我收到400错误;这是我的代码:
可根据需要在命令行中运行,但需要在浏览器中显示预测。有人可以为我提供快速入门吗?这是我的代码:
@app.route('/predict',methods=['POST'])
def predict():
data = request.get_json(force=True)
predict = [data["session"],data["time"],data["amount"]]
predict = np.array(predict)
predict = predict_request.reshape(1,-1)
#make prediction
with graph.as_default():
area = keras_model_loaded.predict(predict)
output = [area[0]]
return render_template('index.html', output = output)
if __name__ == "__main__":
# Choose the port
port = int(os.environ.get('PORT', 9000))
# Run locally
app.run(host='127.0.0.1', port=port)
这是我生成JSON的方式:
response = rq.get('https:xyz')
data=response.json()
session = data['currently']['session']
time = data['currently']['time']
amount = data['currently']['amount']
url= "http://127.0.0.1:9000/predict"
post_data = json.dumps({'session': session, 'time': time, 'amount': amount})
r = rq.post(url,post_data)
答案 0 :(得分:0)
JSON数据似乎未按预期到达服务器。请尝试将您的请求代码更新为:
post_data = {'session': session, 'time': time, 'amount': amount}
r = rq.post(url, json=post_data)
来自官方的python-requests文档:
在请求中使用json参数会将标头中的Content-Type更改为application / json。