将值解析为Model(flask)时出错

时间:2017-07-08 14:23:12

标签: python-2.7 flask machine-learning model flask-restful

目标是接受UI多个参数并使用flask API将其提供给模型(127.0.0.1:5002),然后将模型中的评分发布回UI(127.0.0.1:5001)

当模型接受UI中的值时,我收到错误(最后发布在下面)。 所以我将值发布到127.0.0.1:5002,其中模型将其作为1个json对象,但我收到错误。

所以我从这段代码发布了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

1 个答案:

答案 0 :(得分:0)

您只是将字符串'args.xyz'传递给read_json,您应该使用args['xyz'](假设这是json数据,因为我不会看到将xyz键传递给后端的任何内容。