我正试图使用从以前的panda数据帧生成的值列表,将某些数据从SQL服务器导入到新的pandas数据帧中。在我最初的尝试之后,我所能得到的最好的输出就是一个空的数据帧。非常感谢您的帮助!我的代码如下:
test_list = previous_df["StaffName"].tolist()
cnxn_str = ("Driver={XXXXXXXX};"
"Server=XXXXXXXXXXXX;"
"Database=XXXXXXXXX;"
"UID=XXXXXXXXXX;"
"PWD=XXXXXXXXXX;")
cnxn = pyodbc.connect(XXXXX)
new_df = pd.read_sql("SELECT *
FROM XXXXXXXXXXXXXX
WHERE (Variable_1 in ('X1','X2','X3', 'X4') AND
Varible_2= 'XXXXXXX' AND
Staff_Name_in_new_df_variable in ('test_list'))",
cnxn)
使用字符串格式注入由人员名称列表组成的sql_string
previous_df=pd.DataFrame({'StaffName':['Bob','Jim','Don']})
test_list = previous_df["StaffName"].tolist()
sql_string = "("
for i in test_list:
sql_string = sql_string + "'" + i + "',"
sql_string = sql_string[:-1] + ")"
sql="select * from table where field in{test_list}".format(test_list=sql_string)
print(sql)
输出
select * from table where field in('Bob','Jim','Don')