我正在使用 sqlalchemy 运行一些 SQL 查询。我有一个针对 Snowflake 表运行查询的 for 循环。
当前代码:
for x in list:
results = cursor.execute(f"SELECT TABLE_NAME as TABLE_NAME, 'TABLE_SCHEMA as TABLE_SCHEMA, MAX(DATE) as DATE FROM {database}.{schema}.{table}")
for result in results:
print(result)
这个 for 循环每次迭代都会返回一个元组,如下所示:
('SCHEMA_1','TABLE_1','DATE_1')
('SCHEMA_2','TABLE_2','DATE_2')
('SCHEMA_3','TABLE_3','DATE_3')
等等
如何从循环中创建元组的元组?所以我可以稍后将其传递到 DataFrame 中。
我想做的就是从循环中创建一个数据帧,每次都会附加结果,这样我就可以将完整的 df 写回 Snowflake。
我无法使用snowflake-connector-python[pandas]模块,需要使用sqlalchemy + pandas来完成。
只需将元组追加到列表中即可:
data = []
for x in list:
results = cursor.execute(f"SELECT TABLE_NAME as TABLE_NAME, 'TABLE_SCHEMA as TABLE_SCHEMA, MAX(DATE) as DATE FROM {database}.{schema}.{table}")
for result in results:
data.append(result)
df = pd.DataFrame(data, columns=["schema_name", "table_name", "max_date"])