如何替换 python 列表中字符串的双引号?

How to replace the double quotation marks around a string in python list?

我有一个数据框列,其中一些列在字符串中包含单引号,就像这样(这是两个彼此相邻的单引号,因此它可以转义 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]

采用 answer would be to extend python's built-in str class 修改对象的规范字符串表示的一种方法,即 __repr__() dunder 方法,以便将双引号替换为单引号:

class str2(str):
    def __repr__(self):
        return ''.join(('\'', super().__repr__()[1:-1], '\''))

然后简单地用你列表中的字符串实例化:

ids = ["Group1>>TV>>Blue>>Q''19>>four", 'Group3>>Desktop>>Blue>>>two', \
       'Group1>>Desktop>>Green>>>two']

list(map(str2, ids))

['Group1>>TV>>Blue>>Q''19>>four',
 'Group3>>Desktop>>Blue>>>two',
 'Group1>>Desktop>>Green>>>two']