程序员

python字符串转义问题

2018-09-05  本文已影响144人  风雨_83

最近做爬虫数据抓取的时候遇到一个,抓取回来的内容含有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)

问题完美解决。

上一篇下一篇

猜你喜欢

热点阅读