我有这个查询,它工作得很好并且完全符合我的要求。根据用户输入提取公司的股票数据symbols:
stock_info = {}
for stock in symbols:
stock_info[stock] = get_dict_resultset("SELECT
date, close
FROM security_price
WHERE
security_price.id=%s;", [stock])
get_dict_resultset()连接到我的 postgreSQL 数据库,提取数据并将其存储到 python 字典中。这是定义:
def get_dict_resultset(query, param):
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
cur.execute(query, param)
ans =cur.fetchall()
dict_result = []
for row in ans:
dict_result.append(dict(row))
return dict_result
我不喜欢查询的是它嵌套的 for 循环。我想限制数据库和用户发生的事务量。考虑到 中的值数量symbols,当我只能使用一个简单的语句时,将其放在 for 循环中并迭代对 dB 的相同调用似乎有点愚蠢。
我尝试过使用 executemany和execute_batch,但很难将其实现到上面的代码中。如何在不使用 for 循环的情况下构建查询?我已经清理了我的输入,只是想实现最后一步!
皈依舞
相关分类