我想制作一个基本的rest API,它将一个json文件(从数据帧转换)作为以下格式的发布请求:
[{"supplier":1,"quantity":37},{"supplier":63,"quantity":32},{"supplier":1,"quantity":12}]
并对其进行一些基本分析,比如说每个供应商的平均数量并将其发送回用户。
我可以使用以下代码将发布的数据作为json成功发送回
from flask import Flask, jsonify,request
import pandas as pd
app = Flask(__name__)
@app.route("/basicAnalysis", methods=['POST'])
def basicAnalysis():
if request.method == 'POST':
try:
data = request.get_json(force=True)
d=data.read_json(orient='records')
except ValueError:
return jsonify("something went wrong")
return jsonify(d)
if __name__ == '__main__':
app.run(debug=True)
但是我不知道如何处理收到的数据。我试图将接收到的“数据”转换为数据框,以便可以使用它。但这还没有解决。帮助将不胜感激。
编辑1:包括了我用于将json数据转换为数据框的行。它给了我以下错误:
builtins.AttributeError
AttributeError: 'list' object has no attribute 'read_json'
我认为这是因为request.get_json()会返回一个列表项。
编辑2 :添加了在代码中导入的库。
答案 0 :(得分:0)
如果您的烧瓶代码已成功将接收到的数据转换为
data = [ {"supplier":1,"quantity":37},
{"supplier":63,"quantity":32},
{"supplier":1,"quantity":12} ]
然后可以使用
构建熊猫数据框df = pd.DataFrame(data)
如果数据仍为json格式,则
df = pd.read_json(data, orient='record')
应该工作