在上一篇日志打印的基础上,本篇引入异常控制,并通过json格式输出。
#引入jsonify模块
from flask import jsonify
app = Flask(__name__)
app.config["JSONIFY_PRETTYPRINT_REGULAR"] = False
app.config['JSON_AS_ASCII'] = False
#异常定义
code10001 = {'code':'10001','errorType':'KeyError','errorMsg':'输入特征错误:'}
code10002 = {'code':'10002','errorType':'ValueError','errorMsg':'输入值错误:'}
code10003 = {'code':'10003','errorType':'UncheckException','errorMsg':'未知错误:'}
code10009 = {'code':'10009','errorType':'IOException','errorMsg':'模型文件不可达:'}
以下是一些异常的使用,
def test():
try:
#do something
if os.path.isfile(modelFilePath):
result = {}
···
return jsonify(result)
return jsonify(code10009)
except KeyError as e:
logger.info(e)
code10001['errorMsg']='输入特征错误:' + str(e)
return jsonify(code10001)
except ValueError as e:
logger.info(e)
code10002['errorMsg']='输入值错误:' + str(e)
return jsonify(code10002)
except Exception as e:
logger.info(e)
code10003['errorMsg']='未知错误:' + str(e)
return jsonify(code10003)
另外如果需要屏蔽warning的输出还需要加入如下设置
# 忽略弹出的warnings
import warnings
warnings.filterwarnings('ignore')
(一)机器学习模型的api调用之初探
(二)机器学习模型的api调用之日志打印
(三)机器学习模型的api调用之异常控制
(四)机器学习模型的api调用之特征查询
(五)机器学习模型的api调用之模型执行