Python 使用SQLAlchemy文本构造原始批量插入语句

Python 使用SQLAlchemy文本构造原始批量插入语句,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我正在从几个csv表中读取数据。经过一些转换后,我试图将数据写入MySQL数据库。我构造原始SQL插入语句,并使用sqlalchemy.text()处理字符串转义问题。逐行编写很好,但是我必须插入很多行,因此,我想构造一个原始的批量插入语句。最后可以找到一个完整的简化版本。 简而言之,对于下面的逐行python插入片段,我希望使用原始SQL和sqlalchemy.text()创建一个与批量插入等效的东西 逐行文本插入: 对于行中的行: stm=text(“插入到报废数据.foo(id,工作表,一

我正在从几个csv表中读取数据。经过一些转换后,我试图将数据写入MySQL数据库。我构造原始SQL插入语句,并使用sqlalchemy.text()处理字符串转义问题。逐行编写很好,但是我必须插入很多行,因此,我想构造一个原始的批量插入语句。最后可以找到一个完整的简化版本。 简而言之,对于下面的逐行python插入片段,我希望使用原始SQLsqlalchemy.text()创建一个与批量插入等效的东西

逐行文本插入:

对于行中的行:
stm=text(“插入到报废数据.foo(id,工作表,一些文本)值(:id,:工作表,:一些文本)”)\
bindparams(id=row[“id”]、sheet=row[“sheet”]、some_text=row[“some_text”])
使用engine.connect()作为连接:
connection.execute(stm)
等效于以下语句的Python代码:

插入报废数据.foo(id,表格,一些文本)值(1,'sheet1','Lorem ipsum dolor sit amet'),(2,'sheet2','Lorem ipsum dolor sit amet'))
我的代码的完整简化版本:

在MySQL中创建表

创建表foo(
id INT,
活页VARCHAR(255),
一些文本,
主键(id,页)
);
在python中插入脚本

从sqlalchemy导入创建引擎,文本
DB_USER=“”
DB_PASS=“”
DB_HOST=“”
DB_PORT=“”
DB_NAME=“”
engine=create_engine(““”mysql+mysqlconnector://{db_user}:{db_pass}@{db_host}:{db_port}/{db_name}”“。格式(
db_user=db_user,
db_pass=db_pass,
db_host=db_host,
db_端口=db_端口,
db_名称=db_名称)
行=[{'id':1,'sheet':'sheet1','some_text':'Lorem ipsum door sit amet'},
{'id':2,'sheet':'sheet2','some_text':'concertetur adipising elit'}]
对于行中的行:
stm=text(“插入到报废数据.foo(id,工作表,一些文本)值(:id,:工作表,:一些文本)”)\
bindparams(id=row[“id”]、sheet=row[“sheet”]、some_text=row[“some_text”])
使用engine.connect()作为连接:
connection.execute(stm)
看看是的,我知道这是专为博士后准备的。但有些答案似乎是围绕cursor.executemany构建的,而不是针对postgres的。你可以领养一个。