如何在SQLAlchemy中动态使用select?

问题描述

我正在尝试创建一个函数,该函数可以使用带有可选参数的SQLAlchemy过滤sql表。

功能是

def fetch_new_requests(status,request_type,request_subtype,engine,id_r=None):
        table = Table('Sample_Table',metadata,autoload=True,autoload_with=engine)
        
        query = session.query(load_requests).filter_by(status = status,request_type = request_type,request_subtype = request_subtype,id_r = id_r)
        return pd.read_sql((query).statement,session.bind)

但是如果我没有定义id_r变量,它每次都会返回一个空表

我已经用Google搜索,但是找不到解决方法

我尝试使用** kwargs,但这并不是我真正需要的,我的意思是在这里我必须明确定义列名,然后再次使用id_r来解决问题

def fetch_new_requests(**kwargs):
    
    for x in kwargs.values():
        query = session.query(load_requests).filter_by(status=x)
    return pd.read_sql((query).statement,session.bind)

我理想的结果

def fetch_new_requests(any column names,values of the columns):
    
    for x in kwargs.values():
        query = session.query(load_requests).filter_by(column_name=column_value)
    return pd.read_sql((query).statement,session.bind)

在理论上,我可以使用2个列表或一个字典,但是如果有其他解决方案,我们很乐意听到

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)