【发布时间】:2019-11-01 06:33:41
【问题描述】:
我有一个数据框列,其中一些在字符串中包含单引号,如下所示(这是两个彼此相邻的单引号,因此可以在 SQL 中转义单引号):
'Group1>>TV>>Blue>>Q''19>>four'
其余的字符串不包含引号。在转换我的数据框列以获取我可以复制并粘贴到 SQL 查询中的所有字符串的列表时,当我需要 SQL 的单引号时,它最终会在字符串周围加上双引号。
ids = ["Group1>>TV>>Blue>>Q''19>>four", 'Group3>>Desktop>>Blue>>>two', 'Group1>>Desktop>>Green>>>two']
我想改变它,以便我得到这个:
ids = ['Group1>>TV>>Blue>>Q''19>>four', 'Group3>>Desktop>>Blue>>>two', 'Group1>>Desktop>>Green>>>two']
我尝试了一些不同的方法,但似乎没有任何效果。
[str(x) for x in ids]
[x.strip('"') for x in ids]
[x.replace('"', "'") for x in ids]
【问题讨论】:
-
字符串
"Group1>>TV>>Blue>>Q''19>>four"不包含双引号。引号只是分隔符,用于指定字符串的开始和结束位置。 -
您是否正在使用字符串格式构建 SQL?这是一件非常糟糕、危险的事情。使用参数化查询。
-
这个
'Group1>>TV>>Blue>>Q''19>>four'在字符串常量连接stackoverflow.com/questions/34174539/…之后变成了这个'Group1>>TV>>Blue>>Q19>>four' -
我只是想获取要复制并粘贴到 sql 查询 where 子句中的字符串列表。但是,SQL 不会将字符串周围的双引号作为字符串读取,因此我只需要将其更改为双引号。我希望找到一种使用 Python 的快速方法,而不是手动将双引号更改为单引号。
-
把外面的双引号改成单引号**