我想在循环中通过pd.read_sql_query传递一个变量'single_column':
for single_column in columns_list:
df_trial_queries = pd.read_sql_query("SELECT single_column FROM dw.db.table;",db_cnxn)
我尝试使用这样的东西:
for single_column in columns_list:
df_trial_queries = pd.read_sql_query("SELECT %(column_name)s FROM dw.db.table;",db_cnxn,params = {'column_name':single_column})
根本没有运气!
答案 0 :(得分:1)
你不能在SQL中“paremeterize”表名或列名(SQL只允许“参数化”literals),但你可以在Python级别轻松完成:
In [25]: single_column = 'col1'
In [52]: table = 'dw.db.table'
In [53]: "SELECT {} FROM {}".format(single_column, table)
Out[53]: 'SELECT col1 FROM dw.db.table'
或在你的情况下:
df_trial_queries = pd.read_sql_query("SELECT {} FROM dw.db.table".format(single_column), db_cnxn)
注意:这是非常低效的方式!我确信有更好的方法来实现你的目标,但是你必须对你将要使用这个循环实现的目标有所了解......