我正在尝试将查询流式传输到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附加到这些列表。是否更好的创建一个附加的订单字典,然后以某种方式将其制成列表?在返回值以供稍后使用时,我正在考虑将它们作为全局变量?有什么建议?感谢