Анализ данных, полученных через запрос POST - PullRequest
0 голосов
/ 09 сентября 2018

Я хочу создать базовый 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 : Добавлены библиотеки, импортируемые в код.

1 Ответ

0 голосов
/ 09 сентября 2018

Если ваш код колбы успешно преобразовал полученные данные в

data = [ {"supplier":1,"quantity":37},
         {"supplier":63,"quantity":32},
         {"supplier":1,"quantity":12} ]

, тогда кадр данных pandas можно построить с помощью

df = pd.DataFrame(data)

Если данные все еще были в формате json, то

df = pd.read_json(data, orient='record')

должно работать

...