Неправильные кавычки отображаются при чтении CSV-файла, разделенного по конвейеру, с помощью python read_csv () - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь прочитать CSV-файл, разделенный каналом, используя python read_csv(), но он неправильно определяет двойные кавычки в первом поле. Я знаю, что это как-то связано с флагами читателя csv, но не могу понять.

CODE

with open('Find_File.dat', 'r') as csvfile:
myfile=csv.reader(csvfile,escapechar=" ' ",quoting=csv.QUOTE_NONE,quotechar="'",doublequote=True)
for row in myfile:
     data.append(row)  
print(data[0]) 

ОЖИДАЕМЫЙ ВЫХОД

["T CC Идентификатор записи" | "Имя пользователя" | "Идентификатор кандидата" | "Опыт" | "Последовательность заданий" | "Текущий 10" | "Конечная ставка оплаты 10"]

АКТУАЛЬНЫЙ ВЫХОД

['T CC Идентификатор записи | "Имя пользователя" | "Идентификатор кандидата" | "Опыт" | "Последовательность заданий" | «Текущие 10» | «Конечная ставка оплаты 10» ']

1 Ответ

1 голос
/ 18 марта 2020

Ваш ожидаемый результат немного странный. Разве вы не хотите разобрать строку в список столбцов? Кроме того, если разделителем является труба, это не было указано.

Учитывая, что входной файл выглядит следующим образом:

"TCC Record Identifier"|"UserName"|"Candidate ID"|"Experience"|"Job Sequence"|"Current 10"|"Ending Rate of Pay 10"

или даже:

TCC Record Identifier|UserName|Candidate ID|Experience|Job Sequence|Current 10|Ending Rate of Pay 10

по умолчанию csv.reader будет анализировать любой из вышеперечисленных входов путем простого переопределения разделителя:

import csv

with open('input.csv',newline='') as f:
    r = csv.reader(f,delimiter='|')
    for row in r:
        print(row)

Выход:

['TCC Record Identifier', 'UserName', 'Candidate ID', 'Experience', 'Job Sequence', 'Current 10', 'Ending Rate of Pay 10']
...