我有一个sqlite3数据库,如下所示:
|Tickers|A |B |C |D |E |
|-------|----|----|----|----|----|
|A |1.00|0.25|0.75|0.60|0.30|
|B |0.25|1.00|0.20|0.40|0.70|
|C |0.75|0.20|1.00|0.10|0.90|
|D |0.60|0.40|0.10|1.00|0.50|
|E |0.30|0.70|0.90|0.50|1.00|
我想使用Python中的列表查询此数据库以查找某些股票的相关性(其中列符合每个股票的行) . 我使用以下代码创建列表然后查询数据库:
Stocks=['A','B','C']
import sqlite3
conn = sqlite3.connect('CorrelationMatrix')
c = conn.cursor()
Correlations=[]
for i in range(0,len(Stocks)):
c.execute("SELECT Stocks[i] FROM CorrelationMatrix WHERE Tickers=Stocks[i]")
for row in c.fetchall():
Correlations.append(row)
print(Correlations)
我希望查询的结果为这3个股票(而不是全部5个)创建相关性列表,如下所示:
[1.00,0.75,0.25,0.25,1.00,0.20,0.75,0.20,1.00]
当我执行代码并打印关联列表时,会导致以下错误:
sqlite3.OperationalError:“[i]”附近:语法错误
看来我无法使用python列表查询数据库?有没有人有更好的解决方案来处理像这样的矩阵?
1 回答
您可以使用字符串格式来传递变量以插入列名称,尝试使用:
要么
Correlations
将是: