追加 for 循环返回的元组

问题描述 投票:0回答:1

我正在使用 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来完成。

python list sqlalchemy tuples snowflake-cloud-data-platform
1个回答
0
投票

只需将元组追加到列表中即可:

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"])
© www.soinside.com 2019 - 2024. All rights reserved.