Как заменить двойные кавычки вокруг строки в списке Python? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть столбец dataframe, некоторые из которых содержат одинарные кавычки в строке (например, две одинарные кавычки рядом друг с другом, поэтому он может избежать одинарных кавычек в SQL):

 'Group1>>TV>>Blue>>Q''19>>four'

, а остальные имеют строки, которые не содержат кавычки.При преобразовании моего столбца dataframe, чтобы получить список всех строк, которые я могу скопировать и вставить в 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]

1 Ответ

2 голосов
/ 18 июня 2019

Один из подходов к адаптации этого ответа заключается в расширении встроенного в python str класса, модифицирующего каноническое строковое представление объекта, т. Е. Метод __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']
...