Как пропустить запятую при чтении файла CSV в Python? - PullRequest
0 голосов
/ 10 декабря 2018

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

Мое требование заключается в том, что код должен читать значение этого столбца только в виде одной строки, а метод чтения должен использовать разделитель только в качестве запятой.

Ввод : "11" 11 "," Bob Marley, USA "," ABC "

Код :

reader = csv.reader(csv_file, delimiter=',', quotechar="'")
output = []
for row in reader:
    output = list(row)
    for each in output:
        print(each) 

Выход :

"11"11"
"Bob Marley
 USA"
"ABC"

Желаемый выход:"1111" "Bob Marley USA" "ABC"

1 Ответ

0 голосов
/ 10 декабря 2018

Ваш quotechar="'" должен быть quotechar='"', поскольку для ввода используются строковые значения ".

Редактировать 1:

Нельзя использовать управляющие символывнутри ячеек, не экранируя их, поэтому ваш вход должен экранировать каждую " внутри ячейки.В противном случае он сломается.

Следующий код будет работать для "11\"11","Bob Marley, USA","ABC", но не "11"11","Bob Marley, USA","ABC":

reader = csv.reader(csv_file, delimiter=',', escapechar='\\', quotechar='"')
for row in reader:
    for cell in row:
        print cell

Возможно, вы сможете заменить " на \"с регулярным выражением .

...