在python/NET中,将列名作为变量传递给函数中的select语句

在python/NET中,将列名作为变量传递给函数中的select语句,python,python-2.7,pandas,sqlite,dataframe,Python,Python 2.7,Pandas,Sqlite,Dataframe,假设我有一个函数: def retrieve (c,y): df = pd.read_sql("select Year, ? from table where Year=? ",db, params=(c,y)) return df 我希望能够按如下方式调用函数: retrieve("col_name",2001) 当我将列名作为一个可以传递的变量删除时,它工作得很好。但是我也需要能够传递列名。有什么方法可以使这项工作正常吗?您可以尝试用Python格式化查询字符串,而不

假设我有一个函数:

def retrieve (c,y):
     df = pd.read_sql("select Year, ? from table where Year=? ",db, params=(c,y))
     return df
我希望能够按如下方式调用函数:

retrieve("col_name",2001)

当我将列名作为一个可以传递的变量删除时,它工作得很好。但是我也需要能够传递列名。有什么方法可以使这项工作正常吗?

您可以尝试用Python格式化查询字符串,而不是使用准备好的语句

querysting = "select Year, {} from table where Year={}".format(c,y)
df = pd.read_sql(querystring,db)

将列名作为变量传递时会遇到什么问题?