Я пытаюсь заставить csv writer использовать двойную кавычку в качестве escape-символа и добавить двойную кавычку к двойной кавычке, если она появляется в поле данных.
Моя функция является частью Apache Задание потока данных луча.
Любые советы приветствуются.
Входная запись: "ab" c "," def "
Фактический вывод моей функции возвращает: ab c ", def
Результат, который я пытаюсь достичь" ab c "" ", def
Входной файл может содержать такие записи:
1, «mystring1», «mystring2» 2, «mystring3», «mystring4» 3, "myst" ring5 "," mystring6 "
Запись уведомления 3 имеет двойную кавычку в поле.
Я бы хотел избежать этой двойной кавычки, добавив поставьте перед ним двойные кавычки, затем укажите в кавычках все поле.
1, mystring1, mystring2 2, mystring3, mystring4 3, "myst" "ring5", mystring6
Функция, которую я вызываю
def parse_file(element):
for line in csv.reader([element], quotechar='"', delimiter=','):
output_str = io.StringIO()
cw = csv.writer(output_str, quotechar='"', delimiter=',', escapechar='"', quoting=csv.QUOTE_MINIMAL)
cw.writerow(line)
output_str.close()
clean_line = ', '.join(line)
return clean_line