Python CSV: поле, содержащее кавычку в начале - PullRequest
2 голосов
/ 09 февраля 2012

Я пытаюсь прочитать файл CSV, содержащий следующую строку:

test,"test,"test,test,test,test

Существует проблема с кавычками (Есть шесть полей, но они извлекаются как пять полей, как «тест», тест читается как одно поле).

Я попытался изменить запись следующим образом, но все еще не могу получить кавычку:

test,""test,""test,test,test,test  # quotation marks disappear when the entry is read.

test,\"test,\"test,test,test,test  # backslashes are also retrieved; escaping doesn't seem to work.

Я читаю CSV-файл следующим образом:

info_source = csv.reader(open('.info.csv'), skipinitialspace=True)

for row in ling_info_source:
    data = row[1].strip()
    ...

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Вы можете добавить аргумент quoting=csv.QUOTE_NONE к reader()

3 голосов
/ 09 февраля 2012

По умолчанию " является символом цитирования модуля Python csv. Используйте

csv.reader(open('.info.csv'), skipinitialspace=True, quotechar=None)

чтобы отключить это значение по умолчанию. Приведенный вами пример приведет к записи

['test', '"test', '"test', 'test', 'test', 'test']
...