【发布时间】:2019-01-02 05:59:00
【问题描述】:
我正在尝试为我的 SVM 模型创建一个 API,以通过 API 预测数据。
我尝试了以下代码,但在运行http://127.0.0.1:5000/predict/ URL 时出现错误。
错误:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [02/Jan/2019 11:36:14] "GET / HTTP/1.1" 404 -
NameError: name 'svmModel' is not defined
127.0.0.1 - - [02/Jan/2019 11:36:32] "GET /predict HTTP/1.1" 500 -
我有一些地址以及通过我的模型预测城市 ID 的内容。我的模型工作正常。
更新错误:
An exception has occurred, use %tb to see the full traceback.
SystemExit: 1
D:\Conda\Conda_install\lib\site-packages\IPython\core\interactiveshell.py:3275: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
编辑 1
http://127.0.0.1:5000/predict?property_address=<address>我只得到一个地址输出,但我想在浏览器上发布所有地址预测。
例如:
@app.route('/predict', methods=['GET'])
def predict():
property_address = request.args.get('property_address')
print (property_address)
# Get values from browser
input_data = "SELECT Detail_ID,PROPERTY_ADD + ', ' + MAIN_LOCALITY + ', ' + CITY AS PROPERTY_ADDRESS FROM NHB.DBO.HFC_UNPROCESS_01JUL2018TO30SEP2018 WHERE PROPERTY_ADD is not null"
df = pd.read_sql(input_data,cnxn)
df = pd.DataFrame(df)
df.fillna({'PROPERTY_ADDRESS': 'NA'}, inplace=True)
test_data = df['PROPERTY_ADDRESS'].values.tolist()
for i in range(0, 5):
#print (test_data[i])
class_prediced = svmModel.predict(test_data)[0]
output = "Predicted City ID: " + str(class_prediced)
#print (output)
return (output)
在这里,我使用 for 循环来获得多个输出。
输入:
['Cabin K-1, Laxmi Rd, Aarey Colony, Goregaon East, Mumbai, Maharashtra 400065, India',
'Aarey Colony, Goregaon East, Mumbai, Maharashtra, India',
'Goregaon East, Mumbai, Maharashtra, India']`
预期输出:
在浏览器上:
'Cabin K-1, Laxmi Rd, Aarey Colony, Goregaon East, Mumbai, Maharashtra 400065, India'
Predicted City ID: 1
'Aarey Colony, Goregaon East, Mumbai, Maharashtra, India'
Predicted City ID: 1
'Goregaon East, Mumbai, Maharashtra, India'
Predicted City ID: 1
请推荐
【问题讨论】:
-
我认为您不小心再次粘贴了问题而不是错误消息
-
改成这个
@app.route('/predict', methods=['GET']) -
@P.hunter
@app.route()默认只监听GET -
您不应该在 Python 中使用
global关键字,尤其是在 Flask 等 Web 框架中。在您的情况下,全球化打开和后来关闭的文件甚至没有任何意义。
标签: python python-3.x flask