最近做爬虫数据抓取的时候遇到一个,抓取回来的内容含有python的转义字符,导致在写入mysql的时候一直报错,尝试通过Unicode编码,发现Unicode编码后也含有\转义字符,导致拼接sql的语句在执行mysql写入时候依然报错,请教大神尝试 “”,”“”“”“,字符串前面加r,限制转义,当执行插入(查询)数据时遇到一些特殊字符会使得程序中断。操作失败。问题还是无法解决。
解决办法
插入(查询)之前用 connection.escape(str)处理一下即可
import pymongo
sql_pattern = "select * from my_collection where name = %s" #注意,这里直接用%s,不要给%s加引号,因为后面转移过后会自动加引号
name = "xxx\xxx"
name = connection.escape(name)
sql = sql_pattern%name
print(sql) # select * from my_collection where name = 'xxx\\xxx'
with connection.cursor() as cursor:
try:
cursor.execute(sql)
except:
print(sql)
pass
for r in cursor:
print(r)
问题完美解决。
网友评论