python - json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0),json 错误
问题描述
from flask import Flask, request, jsonify
import joblib
app = Flask(__name__)
@app.route('/predict', methods=['POST','GET'])
def predict():
model = joblib.load('rf_grid.pkl')
data = request.get_json()
prediction = model.predict([[np.array(data['Age'],data['SipSp'],data['Parch'],
data['Fare'],data['Sex_male'],
data['Cabin_Rare'],data['Embarked_S'])]])
output = prediction[0]
return jsonify(output)
if __name__ == '__main__':
app.run(debug=True)
这是我在 app.py 下运行的烧瓶文件
import requests
import json
url ='http://127.0.0.1:5000/predict'
dictionary = {'Age':50, 'SipSp':1, 'Parch':1,'Fare':150,'Sex_male':1,'Cabin_Rare':0,'Embarked_S':1}
r = requests.post(url, json = dictionary)
print(r.json())
这是我在 requests.py 下运行的文件。当我运行此文件时,我收到错误:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
如何摆脱这个错误并让我的 requests.py 运行?
解决方案
您的 API 逻辑中存在错误。我已经评论了核心逻辑部分并返回了 JSON 响应。它没有给出任何错误。
import numpy as np
from flask import Flask, request, jsonify
import joblib
app = Flask(__name__)
@app.route('/predict', methods=['POST','GET'])
def predict():
# model = joblib.load('rf_grid.pkl')
# data = request.get_json()
# prediction = model.predict([[np.array(data['Age'],data['SipSp'],data['Parch'],
# data['Fare'],data['Sex_male'],
# data['Cabin_Rare'],data['Embarked_S'])]])
# output = prediction[0]
output = {"ok": True}
return jsonify(output)
if __name__ == '__main__':
app.run(debug=True)
如果你可以请分享rf_grid.pkl
文件所以,我可以帮忙。
推荐阅读
- javascript - 如何从静态 html 网页表单发送 javascript https 帖子或 webhook?
- sql-server - 带有调整的动态枢轴
- android - 如何在 android 设置页面中添加解释性页脚?
- serialization - 防止引用循环属性序列化
- c++ - 当应用程序关闭时,Asio linux 端口会保持打开一段时间
- php - 从具有数据库 id 的模态中获取不同的数据
- javascript - Vue:旋转木马滑动时的空白
- button - 用户单击提交按钮后如何禁用表单上的提交按钮 Angular 6
- node.js - 尝试分享 pdf,使用 react-native-share v2.0.0
- google-compute-engine - Google Cloud 上的 SendGrid 配置错误(535 身份验证失败)