Python SQLite3如何在查询中引用循环

2024-10-03 06:19:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个SQLLite3数据库,其中包含一个股票价格表,如下所示:

   Ticker             DateTime   Open   High    Low  Close   Volume
0    ZUMZ  2011-11-01 00:00:00  21.65  23.24  20.74  22.84   558700
1    ZUMZ  2011-11-02 00:00:00  23.33  23.86  22.58  23.03   543200
2    ZUMZ  2011-11-03 00:00:00  23.28  23.74  21.82  22.67   492100
3    ZUMZ  2011-11-04 00:00:00  22.43  22.86  21.87  22.45   267320

我正在尝试遍历符号列表并返回相应的数据。你知道吗

我可以为列表中的一个符号返回正确的结果,如下所示:

tickers = ('AA',)
cursor.execute('SELECT * FROM tbl_USELOC_02 WHERE Ticker=?', tickers)
data = cursor.fetchall()
df =  pd.DataFrame(data)
print df

        0                    1          2          3          4          5  \
0      AA  1951-06-11 00:00:00   0.675918   0.682062   0.675918   0.682062   
1      AA  1951-06-12 00:00:00   0.679605   0.686978   0.679605   0.683291   
2      AA  1951-06-13 00:00:00   0.682062   0.684520   0.680834   0.683291   
3      AA  1951-06-14 00:00:00   0.685749   0.700497   0.685749   0.700497   
4      AA  1951-06-15 00:00:00   0.705412   0.710328   0.705412   0.707870   
5      AA  1951-06-18 00:00:00   0.705412   0.710328   0.705412   0.707870 

但是,如果我试着对一个循环做同样的事情,像这样:

tickers = ['ZUMZ', 'AA']
for ticker in tickers:
    cursor.execute('SELECT * FROM tbl_USELOC_02 WHERE Ticker=?', ticker)
    data = cursor.fetchall()
    df =  pd.DataFrame(data)
    print df

…我收到一条错误消息: '编程错误:提供的绑定数不正确。当前语句使用1,提供了4个

有人能告诉我如何对列表中的项目进行查询吗?你知道吗


Tags: fromdf列表executedata符号whereselect
1条回答
网友
1楼 · 发布于 2024-10-03 06:19:20

你忘了给ticker一个元组:

cursor.execute('SELECT * FROM tbl_USELOC_02 WHERE Ticker=?', (ticker,))

你也可以列个清单:

cursor.execute('SELECT * FROM tbl_USELOC_02 WHERE Ticker=?', [ticker])

相关问题 更多 >