2012-09-11 52 views
0

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

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

使用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

这里是解决方案:

首先得到DBAPI连接

connection = engine. raw_connection() 

然后你就可以使用转义字符串五:

connection.escape(v)