Mysql导入数据时经常会有特殊符号从而导入失败报错,之前用的都是正则表达式的方法在特殊符号前加’’。但是这种方法仅适用于自己知道有哪些特殊符号的情况,难免会考虑补全。这时候可以用escape_string来自动转义。
代码如下:
# pymysql在1.0.0版本以上的导入方法
from pymysql.converters import escape_string
import pymysql
db_config = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'password': '1234',
'db': 'work',
'charset': 'utf8',
}
conn = pymysql.connect(**db_config)
cursor = conn.cursor()
s = '\\\\\\\\\\\\\\\\\\'
es = escape_string(s)
sql = "INSERT INTO test (abc) VALUES ('%s')" % es
cursor.execute(sql)
conn.commit()
直接导入s会报错,导入转移后的string就可以正确插入数据了。