将值解析为模型时出错(烧瓶)
error when parsing value into Model (flask)
Objective是接受UI多个参数给模型(127.0.0.1:5002)using flaskAPI然后从模型中打分post 回到 UI (127.0.0.1:5001)
当模型接受来自 UI 的值时,我收到错误(在下面的最后 post 编辑)。
所以我 post 将值设为 127.0.0.1:5002,其中模型将其视为 1 json 对象,但我收到错误。
所以我 post 1 json 来自这段代码的对象(让我知道代码中是否有问题 - 我是新手)
<script>
$(function() {$('#analysis').bind('click', function() {
$.post('http://127.0.0.1:5002/',{
'CK': $('CK').val(),
'OCE': $('OCE').val(),
'range_04': $('range_04').val(),
},
function(data) {
var parsed = JSON.parse(data);
$("#xyz").text(parsed['abc']);
});
return false;
});
});
</script>
现在此代码生成 json(并且 json 对象为模型提供数据)
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
parser.add_argument('args.xyz')
class getPredProb(Resource):
def post(self):
args = parser.parse_args()
clf = joblib.load('AO.pkl')
frameToScore = pandas.read_json('args.xyz')
prediction = clf.predict(frameToScore)
probability = clf.predict_proba(frameToScore)
return json.dumps({'Prediction': prediction},{'Probability':probability}), 201, {'Access-Control-Allow-Origin': 'http://127.0.0.1:5001'}
api.add_resource(getPredProb, '/')
if __name__ == '__main__':
#http_server = WSGIServer(('', 5002), app)
#http_server.serve_forever()
app.run(debug=True,port=5002)
Image of ERROR
您只是将字符串 'args.xyz'
传递给 read_json
,您应该使用 args['xyz']
(假设这是 json 数据,因为我不知道没有看到任何带有 xyz
密钥的东西被传递到后端)。
Objective是接受UI多个参数给模型(127.0.0.1:5002)using flaskAPI然后从模型中打分post 回到 UI (127.0.0.1:5001)
当模型接受来自 UI 的值时,我收到错误(在下面的最后 post 编辑)。 所以我 post 将值设为 127.0.0.1:5002,其中模型将其视为 1 json 对象,但我收到错误。
所以我 post 1 json 来自这段代码的对象(让我知道代码中是否有问题 - 我是新手)
<script>
$(function() {$('#analysis').bind('click', function() {
$.post('http://127.0.0.1:5002/',{
'CK': $('CK').val(),
'OCE': $('OCE').val(),
'range_04': $('range_04').val(),
},
function(data) {
var parsed = JSON.parse(data);
$("#xyz").text(parsed['abc']);
});
return false;
});
});
</script>
现在此代码生成 json(并且 json 对象为模型提供数据)
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
parser.add_argument('args.xyz')
class getPredProb(Resource):
def post(self):
args = parser.parse_args()
clf = joblib.load('AO.pkl')
frameToScore = pandas.read_json('args.xyz')
prediction = clf.predict(frameToScore)
probability = clf.predict_proba(frameToScore)
return json.dumps({'Prediction': prediction},{'Probability':probability}), 201, {'Access-Control-Allow-Origin': 'http://127.0.0.1:5001'}
api.add_resource(getPredProb, '/')
if __name__ == '__main__':
#http_server = WSGIServer(('', 5002), app)
#http_server.serve_forever()
app.run(debug=True,port=5002)
Image of ERROR
您只是将字符串 'args.xyz'
传递给 read_json
,您应该使用 args['xyz']
(假设这是 json 数据,因为我不知道没有看到任何带有 xyz
密钥的东西被传递到后端)。