Как заменить двойные кавычки внутри двойных кавычек пустым символом в полях CSV? - PullRequest
3 голосов
/ 05 февраля 2020

У меня есть файл CSV с каждым полем, заключенным в двойные кавычки. Но некоторые поля / строки сами по себе имеют двойные кавычки, и я хочу удалить их из этой конкретной строки.

Например, одна из строк в полях CSV - «Меня зовут» Радж sh «Кумар».

Теперь я хочу заменить приведенную выше строку на «Меня зовут Радже sh Кумар», восстановив двойные кавычки снаружи.

Я пробовал приведенный ниже код, но, к сожалению, он заменяет все двойные кавычки.

file_out = csv.writer(open("file", "w"), doublequote=False, escapechar='\\', delimiter=';',quotechar='"')
with open("file", "r") as f:
   content = f.read().replace('"', '')
   reader = csv.reader(StringIO(content), doublequote=False, escapechar='\\', delimiter=';'quotechar='"')
   for row in reader:
      print(row)
      file_out.writerow(row)

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете заменить все кавычки в подстроке, которая не содержит первый и последний символы вашей исходной строки.

row = "\"My name is \"Rajesh\" Kumar\""
print(row)
row = row[0] + row[1:-1].replace('\"', '') + row[-1]
print(row)

или

row = "\"My name is \"Rajesh\" Kumar\""
print(row)
row = "\"{}\"".format(row[1:-1].replace('\"', ''))
print(row)

Вывод:

"My name is "Rajesh" Kumar"
"My name is Rajesh Kumar"

Найден другой пост, который в основном охватывает то, что спрашивается: Заменить регулярное выражение, кроме первого и последние символы

...