所以我使用asyncpg预处理语句并执行查询。我在查询中传递位置参数。
目前,我通过stmt.cursor(params[0], params[1])
,但如果我不知道有多少参数正在传递,那么想要将一个列表或其他内容传递给此方法。在这种情况下如何实现这一目标?
我目前的代码:
async def execute_ps(dsn):
conn = await asyncpg.connect(dsn)
sql_query = """select * from table1 where id = $1 and name=$2"""
params = [var1, var2]
stmt = await conn.prepare(sql_query)
result = []
try:
async with conn.transaction():
async for record in stmt.cursor(params[0], params[1]): # want to pass list here
print(record)
result.append(record)
except Exception as e:
print("exception: {}", e)
if conn is None:
await conn.close()
return result
答案 0 :(得分:0)
我的坏。我发现它必须使用*。我是python的新手,所以没想到它!
async for record in stmt.cursor(*params)