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