在Flask中处理Pandas Dataframe的最佳方法

时间:2020-10-29 19:37:16

标签: python python-3.x pandas dataframe flask

我有一个flask应用程序,该应用程序使用pandas读取csv文件,并在读取后返回一些数据。 dataframe没有任何操作。我以dataframe格式存储了pickle,因此对于收到的每个请求,应用程序unpickles都会读取文件并读取数据并将其返回给客户端。

from flask import Flask, request, jsonify, abort
from flask_cors import CORS, cross_origin
import pandas as pd
import os
import json

@application.route('/Getdata', methods=['GET'])
@cross_origin()
@Validate_API_Key
def index():
    fid = request.args.get('Fid', default=0, type=int)
    df = pd.read_pickle(os.getenv('DFFileName'), compression='gzip')
    res = get_fid_data(fid, df)
    data = res.to_dict(orient='records')
    return jsonify(data=data)

设置get_fid_data()的方式

def get_fid_data(fid, df):
    frecord = pd.DataFrame()

    # certain rows are selected from df based on fid and the
    # rows are appended to frecord. The frecord is then returned.

    return frecord

我的问题是,在最初阅读df之后,有没有办法使它成为全局的?好像unpickling的每个请求的df都是不必要的,只要它可以在flask应用程序运行期间将其“持久”存储在内存中。我想要这样,以便对于每个传入的请求,我都可以从内存中读取df而不是读取文件。

有没有办法做到这一点?

0 个答案:

没有答案