2012-09-11 73 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)