欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python遇到单双引号SQL脚本无法入库的解决办法

程序员文章站 2022-03-22 10:02:13
...

1.将字符串中的引号全加上转义符

将data变为下面的形式,再插入数据库就正确了

Hello\'World\"!

具体在python中的转义函数如下:

def transferContent(self, content):
        if content is None:
            return None
        else:
            string = ""
            for c in content:
                if c == '"':
                    string += '\\\"'
                elif c == "'":
                    string += "\\\'"
                elif c == "\\":
                    string += "\\\\"
                else:
                    string += c
            return string

要加三个\,这是因为\\会在函数中转义为\,\'会转义成',两者合起来才能在字符串中留下 \',然后sql读取后才能识别这是转义

注意,\本身也需要转义,否则如果原本字符串中为\',只转义'就会变成\\\\',结果是\\\\相互抵消,只剩下'

在python中,下面两种写法是一样的

a=" ' "
a=" \' "

 

2.使用MySQLdb.escape_string()函数转义

sql = "insert into tb (my_str) values('%s')" % (MySQLdb.escape_string(data))
cursor.execute(sql)

 

3.将str字符串转化为bytes类型

from urllib import parse
neirong = parse.quote(neirong)
'''
将html转化为bytes类型的字符串
反解用parse.unquote()
'''

4.可以使用加密方式加密字符串,hashlib

 

自用方法3

相关标签: code