Формулировка проблемы и обзор решения
При работе с данными, можно встретить строку или список строк содержащие две двойные кавычки. Эта статья описывает как удалить один набор этих двойных кавычек.
Вопрос в следующем: как писать код чтобы убрать ненужный набор двойных кавычек?
Выполнить эту задачу можно одним из следующих способов:
- Способ 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 |
Резюме
Мы рассмотрели пять способов как можно убрать двойной набор двойных кавычек из строки и все двойные кавычки. Под свои конкретные нужды можно выбрать наиболее подходящий вариант.