使用Python中的sqlite3,如果我想使用变量而不是固定命令进行数据库查询,我可以执行以下操作:
name = 'MSFT' c.execute('INSERT INTO Symbol VALUES (?) ', (name,))
当我尝试使用pandas数据框访问SQL db时,我可以这样做:
df = pd.read_sql_query('SELECT open FROM NYSEXOM', conn)
但是我不确定如何在引用变量的同时将数据从SQL加载到pandas数据帧。我尝试了以下方法:
conn = sqlite3.connect('stocks.db') dates= [20100102,20100103,20100104] for date in dates: f = pd.read_sql_query('SELECT open FROM NYSEMSFT WHERE date = (?)', conn, (date,))
运行此命令时,我收到一条错误消息:“提供的绑定数不正确,当前语句使用1,并且提供了0”
如何使用变量引用正确格式化命令以将SQL数据加载到pandas数据框中?
您需要使用params 关键字参数 :
params
f = pd.read_sql_query('SELECT open FROM NYSEMSFT WHERE date = (?)', conn, params=(date,))