在函数内部循环或自动添加时分配元素

时间:2019-05-02 15:39:27

标签: python postgresql

我想知道你是否可以帮助我解决我的问题 我正在尝试创建一个基于SQL QUERY获取数据帧的函数。

我的功能是:

    def request_data(str,conn):
        cur = conn.cursor()
        cur.execute(str)
        data = pd.read_sql_query(str, conn)
        return data

当我尝试使用append方法应用函数时,得到的结果是我期望的!

    Tables_to_initialize = ['sales', 'stores', 'prices']
    Tables = []
    for x in Tables_to_initialize:
    Tables.append(request_data("SELECT *  FROM {i} WHERE d_cr_bdd = 
    (SELECT MAX(d_cr_bdd) FROM {i} )  ; ".format(i = x),conn))

但是, Tables是一个列表,其中包含所有基于我的查询排序的数据框,我真正想要做的就是将列表中的每个元素分配给它的名称,例如

Tables_to_initialize[0] = 'sales' 

并且我希望Tables [0]作为对象(数据框)销售。

是否有任何方法可以在函数内部或自动添加对象?或其他解决方案?

非常感谢您的帮助

最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

根据给定的查询获取对象列表。

 table = [requested_data("SELECT *  FROM {i} WHERE d_cr_bdd = (SELECT MAX(d_cr_bdd) FROM {i}".format(i)) for i in Tables_to_initialize ]