向SQLITE3 SELECT列查询添加参数

2024-09-30 06:16:02 发布

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

我正在尝试简化对SQLITE3的查询。我将它用于金融价格建模,因此我重新使用了很多相同的基本查询,但每次都必须不断更改硬编码以得到不同的列查询。所以我想要一个通用的查询,在这里我只写一次我想要的,然后它把列作为列表输出。这是我想要的一个基本版本,但基本上还是硬编码的,所以你可以看到我试图创建什么

dbName = 'NASDAQ_Equities'
ticker = 'AAPL'

def pullDataTest(dbPathName, ticker, *args):
   datep = []
   openp = []
   highp = []

   db = sqlite3.connect(dbPathName + '.mydb', detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES, timeout=3)
cursor = db.cursor()

   cursor.execute('''SELECT   ''' + str(args) + '''  FROM ''' + ticker)
   for row in cursor:
       datep.append(row[0])
       openp.append(row[1])
       highp.append(row[2])

  pullData(dbName, ticker, 'datep', 'openp', 'highp')

目前,我不知道如何在select语句中输入*args,因为它会因为()括号而拒绝它。同样的问题是创建空列表并从*args追加到这些列表。创建一个要附加的order dict,然后以某种方式在末尾将其放入列表中会更好吗?在返回值以供以后使用时,我想让它们成为全局的?有什么建议吗?谢谢


Tags: 编码列表dbparseargssqlite3cursorrow

热门问题