SQLAlchemy实现多条SQL语句参数化查询 ,每条SQL所使用的参数不一定相同,每条查询的结果以字典列表形式返回,多条语句的查询结果合并以列表形式返回。
代码实现如下:
def connect_mysql(username, password, host, port, database, params, statements): connection_string = f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}' engine = create_engine(connection_string) with engine.connect() as connection: list_query_results = [] for statement in statements: # 创建一个新的字典,只包含当前 SQL 语句需要的参数 needed_params = {key: value for key, value in params.items() if f':{key}' in statement} # 使用text()函数来构造SQL表达式,并传入参数 stmt = text(statement).bindparams(**needed_params) result_proxy = connection.execute(stmt) # 初始化一个空列表来存储结果字典 result_dicts = [] # 获取列名 column_names = result_proxy.keys() # 遍历结果集中的每一行 for row_proxy in result_proxy: # 创建一个字典来存储这一行的数据 row_dict = {name: row_proxy._mapping[name] for name in column_names} # 将这一行的数据字典添加到结果列表中 result_dicts.append(row_dict)# 将结果列表添加到总的结果列表中 list_query_results.append(result_dicts) # list_query_results.append(list_query_results.fetchall()) print("Query executed successfully") print(list_query_results) return list_query_results
标签:语句,SQLAlchemy,list,results,result,SQL,query,proxy From: https://www.cnblogs.com/lin-yysy/p/18292532