python - 通过 POST 请求接收到的数据分析
问题描述
我想制作一个基本的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:在代码中添加了正在导入的库。
解决方案
如果您的烧瓶代码已成功将接收到的数据转换为
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')
应该管用
推荐阅读
- python - 运行 SQL Alchemy 迁移命令时,两个 Python Flask App 共享相同的数据库删除表问题
- c++ - 构造函数中定义的类函数的默认参数
- javascript - 在 nextjs 上处理延迟加载数据列表
- c++ - 复制后删除原始数组指针将前 3 个字节设置为 0
- c++ - 在 Qt 项目中独立于路径包含外部库
- python - `PIL.Image.Show()` 临时存储图像在哪里,之后会被删除吗?
- python - 使用 Google Docs API 在不影响格式的情况下更改整个文档的字体
- javascript - 开玩笑监视数组元素
- google-cloud-platform - 无法从谷歌云虚拟机连接到谷歌云 Paas 实例。两者都在不同的地区
- c# - 为什么在 XML 序列化期间将命名空间添加到子节点?