Разбор Python CSV, экранированный символ цитирования - PullRequest
2 голосов
/ 02 апреля 2019

Я пытаюсь проанализировать файл CSV с помощью csv.reader, мои данные разделяются запятыми, и каждое значение начинается и заканчивается кавычками.Пример:

"This is some data", "New data", "More \"data\" here", "test"

Моя проблема связана с третьим значением, данные, которые я получаю, и которые заключены в кавычки, имеют escape-символ, показывающий, что они являются частью данных.Читатель Python CSV не использует этот escape-символ, поэтому он приводит к неправильному синтаксическому анализу.

Я попробовал код, подобный приведенному ниже:

    with open(filepath) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',', quotechar='\\"')

Но я получаю ошибку, сообщая, что кавычка не является 1 символом,

Мое текущее решение - просто заменить все символы \ "символы одной кавычкой 'перед синтаксическим анализом с помощью csv.reader - однако, я хотел бы знать, если есть лучший способ без изменения исходных данных.

1 Ответ

2 голосов
/ 02 апреля 2019

Проблема здесь в том, что вам нужно определить escapechar , чтобы читатель csv знал, что трактовать \ "как".

csv.reader(csv_file, quotechar='"', delimiter=',', escapechar='\\')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...