将数据从Flask发送到Java Server

时间:2017-10-30 11:09:28

标签: java python json post flask

我不熟悉Python和Flask的工程方面,所以我想知道以下内容 - 我有一个Flask应用程序,它接收带有json格式数据的POST请求并将它们应用到预测模型中并获得结果作为json数据。以下是更准确的代码:

from flask import Flask
from flask import request
import io
import json
import pandas as pd
import numpy as np
from fbprophet import Prophet

app = Flask(__name__)

@app.route('/postjson', methods = ['POST'])

def postJsonHandler():

print (request.is_json)
content = request.get_json()

df = pd.io.json.json_normalize(content, 'data')    
df.rename(columns={0 : 'ds', 1 : 'y'}, inplace=True)
df['ds'] = pd.to_datetime(df['ds'])

my_model = Prophet(interval_width=0.95, yearly_seasonality=False, daily_seasonality=False, weekly_seasonality=True)

df['y'] = np.log(df['y'])

my_model.fit(df)

future_dates = my_model.make_future_dataframe(periods=30)

forecast = my_model.predict(future_dates)

yhat=forecast.yhat
ser=np.exp(yhat)

df_upd=pd.DataFrame(ser[-30:])
df_upd.reset_index(drop=True, inplace=True)

js=df_upd.to_dict(orient='split')
del js['index']
res=json.dumps(js)

print(res)

return 'JSON posted'


app.run(host='0.0.0.0', port= 8090)

我应该做些什么才能将模型(res)的结果数据发送到Java Server?

1 个答案:

答案 0 :(得分:-1)

找到它。

基本上,在这种情况下需要做的是使用Response对象并执行类似的操作将数据发送回服务器:

answer = Response(res, status=200, mimetype='application/json')