Python字符串-奇怪的替换行为

Python字符串-奇怪的替换行为,python,mysql,string,Python,Mysql,String,我有一个函数,其中我得到一个字符串作为参数。我想将此字符串保存到数据库中。所以我有一个命令,比如: sql_command = """INSERT INTO some_table(some_text_row) VALUE ( '{0}');""".format(some_text) 但是参数可以包含类似于“的字符。所以我需要替换这类字符。我使用此函数执行此操作: some_text = given_parameter.replace("'", r"\'") 但

我有一个函数,其中我得到一个字符串作为参数。我想将此字符串保存到数据库中。所以我有一个命令,比如:

    sql_command = """INSERT INTO some_table(some_text_row) VALUE (
        '{0}');""".format(some_text)
但是参数可以包含类似于
的字符。所以我需要替换这类字符。我使用此函数执行此操作:

    some_text = given_parameter.replace("'", r"\'")
但现在出现了奇怪的行为:有时,我得到的结果是
\\'
,有时我得到的结果是
\'
。我想要第二个

为您提供更多信息:
gived_参数
是网页的HTML代码。我从名为
requests


有人有一些TIPP吗?

不要使用字符串格式构造查询-这是不安全的,您会使它容易受到攻击

相反,参数化查询,让mysql驱动程序担心引号:

sql_command = """
    INSERT INTO 
        some_table(some_text_row) 
    VALUES 
        (%s)"""
cursor.execute(sql_command, (some_text, ))

不要使用字符串格式构造查询-这是不安全的,您使其容易受到攻击

相反,参数化查询,让mysql驱动程序担心引号:

sql_command = """
    INSERT INTO 
        some_table(some_text_row) 
    VALUES 
        (%s)"""
cursor.execute(sql_command, (some_text, ))

FWIW,通常您不想在sql_命令中执行自己的字符串插值——这可能会让您对FWIW敞开心扉,通常您不想在sql_命令中执行自己的字符串插值——这可能会让您对感谢敞开心扉。这就是解决办法,谢谢。这就是解决办法。