Как добавить параметр коллекции (список и т. Д.) В курсор подготовленного оператора
Поэтому я использую подготовленное заявление 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
1 ответ
Решение
Виноват. Я узнал, что он должен использовать *. Я новичок в Python, так что не понял его с первого взгляда!
async for record in stmt.cursor(*params)