在for循环中追加元组
我正在使用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"])