Flask-JSON请求出现400错误

时间:2018-07-03 16:32:40

标签: python flask

我创建了以下简单的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)

1 个答案:

答案 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。