如何在使用sqlalchemy的自定义插入查询中将列表用作参数?

时间:2019-04-10 12:04:54

标签: python mysql python-3.x sqlalchemy

我正在寻找一种使用带有sqlalchemy的原始查询插入多行的简单方法。

我正在尝试运行这种查询,其中要插入的行数可能会有所不同:

INSERT INTO table (
   col_1,
   col_2
)
VALUES (row_1_col_1, row_1_col_2), (row_2_col_1, row_2_col_2), 
(row_3_col_1, row_3_col_2);

我想知道是否有一种方法可以使用字典列表作为查询参数:

from sqlalchemy.sql import text

insert_query = text("""
    INSERT INTO table (
        col_1,
        col_2
    ) VALUES :to_insert
""")
params = {'to_insert': [
       {'col_1': 'row_1_col_1', 'col_2': 'row_1_col_2'},
       {'col_1': 'row_2_col_1', 'col_2': 'row_2_col_2'},
       {'col_1': 'row_3_col_1', 'col_2': 'row_3_col_2'}]

result = connection.execute(query, params)

而不是使用','。join创建字符串。

0 个答案:

没有答案