Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何有效地替换字符串中的双引号和单引号?_Python_Database_String - Fatal编程技术网

Python 如何有效地替换字符串中的双引号和单引号?

Python 如何有效地替换字符串中的双引号和单引号?,python,database,string,Python,Database,String,我正在解析一个xml文件并将其插入数据库。 然而,由于一些文本包含双引号或单引号,我在插入时遇到了问题。目前我使用的代码如下所示。但它似乎效率很低 s = s.replace('"', ' ') s = s.replace("'", ' ') 有没有办法在不替换这些引语的情况下插入文本 或 有没有有效的方法来替代它们 谢谢 为什么不能在数据库中插入包含引号的字符串?是否存在允许除引号外的任何字符的奇怪数据类型?或者您是在用文本字符串构建insert语句,而不是像您应该做的那样将字符串绑定到查询

我正在解析一个xml文件并将其插入数据库。 然而,由于一些文本包含双引号或单引号,我在插入时遇到了问题。目前我使用的代码如下所示。但它似乎效率很低

s = s.replace('"', ' ')
s = s.replace("'", ' ')
有没有办法在不替换这些引语的情况下插入文本

有没有有效的方法来替代它们


谢谢

为什么不能在数据库中插入包含引号的字符串?是否存在允许除引号外的任何字符的奇怪数据类型?或者您是在用文本字符串构建
insert
语句,而不是像您应该做的那样将字符串绑定到查询参数

如果你正在做

cursor.execute('insert into mytable (somefield) values ("%s")' % (mystring))
那是不安全和错误的。相反,你应该这样做

cursor.execute('insert into mytable (somefield) values (%(myparam)s)',
                dict(myparam=mystring))

您可以尝试类似于_mysql.escape_string()的方法:


但是,手册建议使用,但我认为您首先需要数据库连接。

您应该使用
str.translate
而不是执行两次
replace()
调用

>>> import string
>>> quotes_to_spaces=string.maketrans('"\'',"  ")
>>> s=s.translate(quotes_to_spaces)
>>> import string
>>> quotes_to_spaces=string.maketrans('"\'',"  ")
>>> s=s.translate(quotes_to_spaces)