在for循环中追加元组

0 投票
1 回答
53 浏览
提问于 2025-04-13 17:59

我正在使用sqlalchemy运行一些SQL查询。我有一个for循环,它对Snowflake表执行查询。

当前代码:

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')

等等。

我该如何从这个for循环创建一个元组的元组呢?这样我就可以把它传递给DataFrame。

我只想从这个循环中创建一个数据框,每次都把结果添加进去,这样我就可以把完整的数据框写回Snowflake。

我不能使用snowflake-connector-python[pandas]模块,只能用sqlalchemy和pandas来完成。

1 个回答

1

我不太明白这里的列表迭代是什么,因为你似乎没有在任何地方使用到 x,所以我就把它省略掉了。

只需要把这些元组添加到一个列表里:

data = []

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"])

撰写回答