Подтвердить что ты не робот

Python CSV: удалить кавычки из значения

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

1, someval, someval2

Когда я открываю CSV в электронной таблице, редактирую и сохраняю, он добавляет двойные кавычки вокруг строк

1, "someEditVal", "someval2"

Я понял, что это всего лишь действие электронной таблицы (в данном случае openoffice). Я хочу, чтобы моя загрузка script удаляла двойные кавычки обертывания. Я не могу удалить все кавычки, просто добавьте тело, содержащее их, и я также не хочу просто проверять первый и последний символы для двойных кавычек.

Im почти уверен, что библиотека CSV в python будет знать, как с этим справиться, но не уверен, как ее использовать...

ИЗМЕНИТЬ Когда я использую значения в словаре, они выглядят следующим образом

{'header':'"value"'}

Спасибо

4b9b3361

Ответ 1

Например, следующие работы:

import csv
writer = csv.writer(open("out.csv", "wb"), quoting=csv.QUOTE_NONE)
reader = csv.reader(open("in.csv", "rb"), skipinitialspace=True)
writer.writerows(reader)

Возможно, вам придется играть с параметрами диалекта для чтения и записи CSV - см. документацию модуля csv.

Ответ 2

Спасибо всем, кто пытался мне помочь, но я понял это. При указании читателя вы можете определить катчар

csv.reader(upload_file, delimiter=',', quotechar='"')

Это обрабатывает кавычки строк.

Ответ 3

Для Python 3:

import csv
writer = csv.writer(open("query_result.csv", "wt"), quoting=csv.QUOTE_NONE, escapechar='\\')
reader = csv.reader(open("out.txt", "rt"), skipinitialspace=True)
writer.writerows(reader)

Оригинальный ответ дает эту ошибку в Python 3. Также см. это SO для деталей: csv.Error: iterator должен возвращать строки, а не байты

Traceback (последний последний вызов):   Файл "remove_quotes.py", строка 11, в     writer.writerows(считыватель) _csv.Error: iterator должен возвращать строки, а не байты (вы открыли файл в текстовом режиме?)