Json Post请求返回空正文响应(200无)
向机器学习API发送post响应返回空正文, 请求的代码很简单:Json Post请求返回空正文响应(200无),json,flask,python-requests,Json,Flask,Python Requests,向机器学习API发送post响应返回空正文, 请求的代码很简单: import json import requests for row in new_f.itertuples(): features = [{ 'CRIM' : str(row.CRIM), 'ZN' : str(row.ZN), 'INDUS' : str(row
import json
import requests
for row in new_f.itertuples():
features = [{
'CRIM' : str(row.CRIM),
'ZN' : str(row.ZN),
'INDUS' : str(row.INDUS),
'CHAS' : str(row.CHAS),
'NOX' : str(row.NOX),
'RM' : str(row.RM),
'AGE' : str(row.AGE),
'DIS' : str(row.DIS),
'RAD' : str(row.RAD),
'TAX' : str(row.TAX),
'PTRATIO' : str(row.PTRATIO),
'B' : str(row.B),
'LSTAT' : str(row.LSTAT)
}]
postre = json.dumps(features)
print(postre)
response = requests.post(url = 'http://127.0.0.1:5000/predict' , data= postre )
print(response.json())
打印(postre)的输出为:
打印response.json时出现错误:
第34行,在predict\n query=pd.get\u dummies(pd.DataFrame(json))…ValueError:No objects to concatenate\n'}
以下是Post api methode代码段:
if flask.request.method == 'POST':
try:
json_ =request.json
print(json_)
query_ =pd.get_dummies(pd.DataFrame(json_))
query = query_.reindex(columns = model_columns, fill_value = 0)
prediction = list(classifier.predict(query))
return jsonify({
"prediction":str(prediction)
})
except:
return jsonify({
"trace": traceback.format_exc()
})
Post man请求应用程序返回所需的结果:
{
"prediction": "[42.267999999999994]"
}
您是否从Flask导入请求 write
json\uux=flask.request.json
首先,您可以在请求中发送列表,而无需序列化,而不是
json\uu=request.json
。而且,如果您将其作为json
发送,它会将标题中的内容类型
更改为application/json
。因此,请使用:
response = requests.post(url = 'http://127.0.0.1:5000/predict', json=features)
然后,为了查看响应是什么,请尝试:
print(request.get_json())
print(request.json)
如果您使用:
get_json(force=True), it will try to parse it as JSON even if you send with wrong mimetype.
是的!还是不走运
get_json(force=True), it will try to parse it as JSON even if you send with wrong mimetype.