小编典典

熊猫Sqlite查询使用变量

sql

使用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数据框中?


阅读 308

收藏
2021-04-22

共1个答案

小编典典

您需要使用params 关键字参数

f = pd.read_sql_query('SELECT open FROM NYSEMSFT WHERE date = (?)', conn, params=(date,))
2021-04-22