Python CSV: удалить кавычки из значения
У меня есть процесс, в котором файл CSV можно загрузить, отредактировать, затем загрузить снова. При загрузке CSV файл находится в правильном формате, без двойных кавычек обертывания
1, someval, someval2
Когда я открываю CSV в электронной таблице, редактирую и сохраняю, он добавляет двойные кавычки вокруг строк
1, "someEditVal", "someval2"
Я понял, что это всего лишь действие электронной таблицы (в данном случае openoffice). Я хочу, чтобы моя загрузка script удаляла двойные кавычки обертывания. Я не могу удалить все кавычки, просто добавьте тело, содержащее их, и я также не хочу просто проверять первый и последний символы для двойных кавычек.
Im почти уверен, что библиотека CSV в python будет знать, как с этим справиться, но не уверен, как ее использовать...
ИЗМЕНИТЬ
Когда я использую значения в словаре, они выглядят следующим образом
{'header':'"value"'}
Спасибо
Ответы
Ответ 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 должен возвращать строки, а не байты (вы открыли файл в текстовом режиме?)