Как добавить параметр коллекции (список и т. Д.) В курсор подготовленного оператора

Поэтому я использую подготовленное заявление 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)

Другие вопросы по тегам