使用sqlalchemy和mysql执行批量插入

时间:2012-09-11 15:54:01

标签: python mysql sqlalchemy

我正在动态创建批量插入查询。 在我的应用程序中,我使用sqlAlchemy,我想执行该插入。

问题出在我创建查询时。我想插入包含应该转义的特殊字符的数据。

使用MysqlDb模块有一个函数MySQLdb.escape_string可以转义特殊字符但不幸的是不能用于Unicode字符。

我有什么选择?

我想要注意,创建查询并不容易

q = INSERT INTO table (a, b) VALUES (:a1, :b1), (:a2, :b2) 
q_dict = {(a1, b1), (a2, b2)}

所以我可以执行Session.execute(q,q_dict)。

是否有一个python函数接受一个字符串并转义所有需要转义为Mysql的字符?

想象一下,我想创建一个写入磁盘的文件,然后通过mysql控制台执行它。

1 个答案:

答案 0 :(得分:1)

以下是解决方案:

首先获得DBAPi连接

 connection = engine. raw_connection()

然后你可以使用:

来转义字符串v
 connection.escape(v)