Строка с разделителями во вкладке приводит к появлению символа новой строки в поле без кавычек - PullRequest
1 голос
/ 24 сентября 2019

У меня есть текстовый файл с разделителями табуляции, который сохраняется в поле базы данных.Когда я пытаюсь проанализировать текстовое / строковое содержимое (из поля базы данных), я получаю сообщение об ошибке new-line character seen in unquoted field.

Много SO сообщений ( здесь и здесь) имеет дело с чтением файла напрямую и укажите with open(path, 'rb') as f или with open(path, 'rU').Однако я не могу использовать with open(...), так как я читаю текстовое / строковое значение из записи / поля базы данных.

Простой пример демонстрирует мою проблему ниже.

import csv

s = """X    Y   A   B   C   D
E
F"""

list(csv.reader([s], delimiter='\t'))[0] # throws error

Концептуальнострока будет X\tY\tA\t\B\t\C\tD\rE\rF\r\n.

Что бы я ожидал, это ['X', 'Y', 'A', 'B', 'C', 'D\rE\rF'].

Если поле заключено в кавычки, то все работает.Но у меня нет контроля над тем, как генерируется этот текст (невозможно контролировать и реэкспортировать).Пример ниже.

s = """X    Y   A   B   C   "D
E
F"
"""
list(csv.reader([s], delimiter='\t', quotechar='"'))[0]

Любые идеи о том, как я могу заставить этот анализ работать?

...