Queries
中的变量每个都包含一个SQL查询。例如DF_Articles = 'Select * from Article_Master'
。因此,我函数的pd.read_sql_query
部分起作用。
不起作用:我想创建和存储以查询命名的CSV文件,每个文件都包含查询的内容。
但是当我尝试存储它们(即Query_csv.to_csv('SQL_data/{}.csv'.format(Query))
)时,变量Query
包含整个SQL查询,而不仅仅是名称(即DF_Articles
)。
有解决方法吗?还是我看不到明显的东西?
Queries = [DF_TripHeader, DF_Articles]
def get_data_from_sql():
if not os.path.exists('SQL_data'):
os.makedirs('SQL_data')
for Query in Queries:
if not os.path.exists('SQL_data/{}.csv'.format(Query)):
Query_DF = pd.read_sql_query(Query,Conn_SQL)
Query_DF.to_csv('SQL_data/{}.csv'.format(Query))
else:
print('Already downloaded {}'.format(Query))
get_data_from_sql()
编辑:根据handras和Doctorlove的输入进行了更改。现在就可以使用!
Queries = {"DF_TripHeader":DF_TripHeader,"DF_Articles":DF_Articles}
def get_data_from_sql():
if not os.path.exists('SQL_data'):
os.makedirs('SQL_data')
for name, Query in Queries.items():
if not os.path.exists('SQL_data/{}.csv'.format(name)):
Query_csv = pd.read_sql_query(Query,Conn_SQL)
Query_csv.to_csv('SQL_data/{}.csv'.format(name))
else:
print('Already downloaded {}'.format(name))
get_data_from_sql()`
答案 0 :(得分:2)
我将收集器变量设为字典。
Queries = {"DF_TripHeader" : DF_TripHeader, "DF_Articles" : DF_Articles}
现在您可以像这样迭代:
for name, query in Queries.items():
...
如果您觉得声明查询然后再存储在字典中是多余的,则可以一步完成。
Queries = {
"DF_TripHeader" : "Select * from TripHeader",
"DF_Articles" : "Select * from Article_Master"
}