我试图在sql查询中传递三个变量。这些是区域,功能,newUser。我正在使用SQL驱动程序SQL Server Native Client 11.0。
这是我的代码。
query = "SELECT LicenseNo FROM License_Mgmt_Reporting.dbo.MATLAB_NNU_OPTIONS WHERE Region = ?"
data_df = pd.read_sql_query((query),engine,params={region})
输出。
LicenseNo
0 12
1 5
相反,我想传入三个变量,此代码不起作用。
query = "SELECT LicenseNo FROM License_Mgmt_Reporting.dbo.MATLAB_NNU_OPTIONS WHERE Region = ? and FeatureName = ? and NewUser =?"
nnu_data_df = pd.read_sql_query((query),engine,params={region, feature, newUser})
输出返回一个空的数据帧。
Empty DataFrame
Columns: [LicenseNo]
Index: []
最佳答案
在元组中尝试一个字符串,也可以在查询中取出():
所以你可以做类似的事情
query = "SELECT LicenseNo FROM License_Mgmt_Reporting.dbo.MATLAB_NNU_OPTIONS WHERE Region = ? and FeatureName = ? and NewUser =?"
region = 'US'
feature = 'tall'
newUser = 'john'
data_df = pd.read_sql_query(query, engine, params=(region, feature , newUser))
关于python - 如何使用pandas pd.read_sql_query使用多个参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40180884/