简体   繁体   English

如何使用FLASK python app.run()动态加载excel数据一次

[英]how to load excel data dynamically only once using FLASK python app.run()

How to construct the dictionary dynamically only once by loading the excel file dynamically only one time when I call app.run() using FLASK PYTHON 如何通过使用app.run() PYTHON调用app.run()动态加载excel文件一次只动态构造一次字典

We need to pass this dictionary object that contains excel data of trained models every time when we score the DATA SCIENCE Models 每当我们对DATA SCIENCE模型进行评分时,我们都需要传递包含训练模型的excel数据的字典对象

def dictCall():

    model_root = "/app/RDD/Data/appdrain/"
    predictions_root = "/app/RDD/Data/appdrain/Predictions"
    model_stats_file = '/app/RDD/Data/appdrain/per_app_stats.tsv'
    models_dict = dict()

    with open(model_stats_file, 'r') as csvfile:
        model_stats_reader = csv.reader(csvfile, delimiter='\t')
        for row in model_stats_reader:
            make = row[0]
            model = row[1]
            appname=row[2]
            appversion=row[4]
            threshold=row[5]
            if row[5] == 'NULL':
                continue

            percentiles = [float(i) for i in row[8][1:-1].split(",")]
            app_drain_model = AppDrainModel(make, model, appname, appversion, threshold , percentiles)
            keys=make+model+appname+appversion
            models_dict[keys] = app_drain_model
    return models_dict
    @app.route('/MachineLearning/AppDrain/score', methods=['GET', 'POST'])
     modeldict=dictCall()
     MODELRESULT2=AppDrainScoring.appcall(Make, Model, appName, appVer, 
     meandr,modeldict)

     app.wsgi_app = ProxyFix(app.wsgi_app)
     if __name__ == '__main__':
        app.run()

Did you try something like making the variable models_dict global: 您是否尝试过将变量models_dict全局:

models_dict = dict()
def dictCall():
    global models_dict 

    model_root = "/app/RDD/Data/appdrain/"
    predictions_root = "/app/RDD/Data/appdrain/Predictions"
    model_stats_file = '/app/RDD/Data/appdrain/per_app_stats.tsv'

    if len(models_dict) == 0:

        with open(model_stats_file, 'r') as csvfile:
            model_stats_reader = csv.reader(csvfile, delimiter='\t')
            for row in model_stats_reader:
                make = row[0]
                model = row[1]
                appname=row[2]
                appversion=row[4]
                threshold=row[5]
                if row[5] == 'NULL':
                    continue

                percentiles = [float(i) for i in row[8][1:-1].split(",")]
                app_drain_model = AppDrainModel(make, model, appname, appversion, threshold , percentiles)
                keys=make+model+appname+appversion
                models_dict[keys] = app_drain_model
    return models_dict

    @app.route('/MachineLearning/AppDrain/score', methods=['GET', 'POST'])
     modeldict=dictCall()
     MODELRESULT2=AppDrainScoring.appcall(Make, Model, appName, appVer, 
     meandr,modeldict)

     app.wsgi_app = ProxyFix(app.wsgi_app)
     if __name__ == '__main__':
        app.run()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM