Формулировка проблемы и обзор решения
При работе с данными, можно встретить строку или список строк содержащие две двойные кавычки. Эта статья описывает как удалить один набор этих двойных кавычек.
Вопрос в следующем: как писать код чтобы убрать ненужный набор двойных кавычек?
Выполнить эту задачу можно одним из следующих способов:
- Способ 1: Использовать
startswith()
,endswith()
, иslising
- Способ 2: Использовать регулярные выражения
- Способ 3: Использовать
replace()
- Способ 4: Использовать
list()
- Способ 5: Использовать
Pandas
Способ 1: Использовать startswith(), endswith(), и slising
Этот способ использует функции startswith()
и endswith()
в сочетании slising
для удаления набора двойных кавычек из строк.
web_name = '""adasd""' if web_name.startswith('"') and web_name.endswith('"'): web_name = web_name[1:-1] print(web_name)
Первая строка представленного кода объявляет строку содержащую два набора двойных кавычек и сохраняет её в переменную web_name
.
Следующая строка вызывает условный оператор if
с функциями startswith()
и endswith()
. В обе функции передан аргумент ('""'
).
Это выражение проверяет начинается и заканчивается ли переменная web_name
обозначенным аргументом. Если да, код переходит к следующей строчке и используя slicing
, удаляет указанный символ.
Далее результат выводится в терминал.
Способ 2: Использовать регулярные выражения
Чтобы удалить один набор двойных кавычек в строке, можно использовать регулярные выражения — метод re.sub()
.
import re string = '""Какой-то текст с двойными кавычками""' string = re.sub(r'^"|"$','',string) print(string)
Первой строкой мы импортируем библиотеку re
. Она позволяет получить доступ к манипуляции строками чтобы получить нужный нам результат.
Далее объявляем строку с двойным набором двойных кавычек и помещаем её в переменную string
.
В следующей строке используется re.sub()
: находится двойной набор двойных кавычек, удаляется один и результат присваивается обратно переменной string.
Результат выводится в терминал.
Другой вариант использовать re.sub()
и передать этой функции два аргумента:
- строка которую нужно заменить и
- строка на которую нужно заменить первую
import re string = '""Какой-то текст с двойными кавычками""' string = re.sub('""','"',string) print(string)
Данный вариант заменяет двойные кавычки стоящие рядом не только вначале и в конце строки, но и в середине строки.
Способ 3: Использовать replace()
Этот метод использует replace()
чтобы убрать один набор двойных кавычек из строки.
string = '""Всякий разный текст с лишними кавычками""' string = string.replace('""', '"') print(string)
В первой строке, как и в предыдущих примерах создаём строку и присваиваем её значение переменной string
.
В следующей строке добавляем функцию replace()
к переменной string
и передаём ей два аргумента:
- строка которую нужно заменить и
- строка на которую нужно заменить первую
Результат сохраняем обратно в переменную string
и далее выводим результат в терминал.
Способ 4: Использовать list()
Этот метод подразумевает обработку списка содержащего двойной набор двойных кавычек функцией list(). Этот вариант отличается от предыдущих тем, что удаляет все двойные кавычки.
user_emails = [""'asdasd@asdasd.com','asdasd@sdfdsf.ru','sdfdsf@sdfds.ch','sadas@dsvsdfds.tw'""] user_emails = list(user_emails) print(user_emails)
Первая строчка кода состоит из списка емэйлов пользователей с двойными кавычками вначале и конце. Этот список помещён в переменную user_emails
.
Следующая строчка использует переменную user_emails
в качестве аргумента функции list
. Результат обработки сохраняется обратно в переменную user_emails
, а затем выводится втерминал.
Обратите внимание: Конвертация списка содержащего двойные кавычки используя функцию list() приведёт к удалению всех двойных кавычек.
Способ 5: Использовать Pandas
Этот метод предполагает использование Pandas
чтобы удалить все двойные кавычки из CSV файла.
Содержание CSV файла
Store,Category,Product,Number
""Toronto"",""Jeans"",""10534"",""15""
""Montreal"",""Tops"",""5415"",""32""
""Ottawa"",""Coats"",""98341"",""22""
import pandas as pd df = pd.read_csv('quotes.csv', header = None) df.replace('"', '', inplace = True, regex = True) print(df)
В приведенном выше примере импортируется библиотека Pandas. Эта библиотека позволяет получить доступ и манипулировать Pandas DataFrame.
Следующая строчка кода считывает CSV файл без шапки в DataFrame и передаёт значение в переменную df.
Если вывести в терминал данные из DataFrame, то они будут выглядеть следующим образом:
0 | 1 | 2 | 3 | |
0 | Store | Category | Product | Number |
1 | Toronto»» | Jeans»» | 10534″» | 15″» |
2 | Montreal»» | Tops»» | 5415″» | 32″» |
3 | Ottawa»» | Coats»» | 98341″» | 22″» |
Примечание: По умолчанию, когда импортируются данные из CSV файла, открывающие двойные кавычки удаляются, оставляя двойные кавычки в конце.
Следующая строчка кода удаляет все оставшиеся двойные кавычки из DataFrame.
Результат модифициро ванных данных DataFrame сохраняется в переменную df и выводится в терминал.
0 | 1 | 2 | 3 | |
0 | Store | Category | Product | Number |
1 | Toronto | Jeans | 10534 | 15 |
2 | Montreal | Tops | 5415 | 32 |
3 | Ottawa | Coats | 98341 | 22 |
Резюме
Мы рассмотрели пять способов как можно убрать двойной набор двойных кавычек из строки и все двойные кавычки. Под свои конкретные нужды можно выбрать наиболее подходящий вариант.