2015-12-03 4 views
1

Я пытаюсь использовать компонент DataWeave Mule для чтения файла CSV, который недопустим или, по крайней мере, не соответствует RFC 4180. Проблема в том, что есть некоторые значения, которые содержат кавычки, но поле не экранировано. Например,Игнорировать строки с кавычками или получить DataWeave для чтения недопустимого CSV

col1,col2,col3 
one,two "two" two,three 
one",two,three 

Есть ли способ простой способ, чтобы немного ослабить правила в парсер CSV, который использует DataWeave так, что он будет относиться значение, которое не начинается с двойной кавычки как не маскирование стоимость? В качестве альтернативы, могу ли я (используя DataWeave или какое-то другое преобразование) игнорировать все строки текста, в которых есть цитата? Это меньше, чем доля одного процента строк, и эти строки случайно не имеют отношения к этой интеграции, но я не могу управлять генерацией CSV.

редактировать: Вот пример:

CSV

Column A,Column B,Column C,Column D 
A,Something Weird",C,D 
A,B,Something Else" Weird,D, 
A,",S,o,m,e,t,h,i,n,g, ,N,o,r,m,a,l,",C,D 

DataWeave

%dw 1.0 
%input payload application/csv 
%output application/json 
--- 
payload 

Выход

[ 
    { 
    "Column A": "A", 
    "Column B": ",C,D\r\nA,B,Something Else", 
    "Column C": "D", 
    "Column D": "" 
    }, 
    { 
    "Column A": "A", 
    "Column B": ",S,o,m,e,t,h,i,n,g, ,N,o,r,m,a,l,", 
    "Column C": "C", 
    "Column D": "D" 
    } 
] 

ответ

-1

В качестве альтернативы, я могу (либо с помощью DataWeave или некоторые другие преобразования) игнорировать все строки текста, которые имеют котировку в них?

Несомненно. Просто удалите все строки, содержащие двойную кавычку с ввода, до вашего преобразователя DataWeave.

+0

Как я могу это сделать? Для меня не очевидно, как удалить строки из InputStream. Какой трансформатор я использовал бы? Как и в, мне нужно сделать что-то вроде http://stackoverflow.com/questions/34076873, или есть встроенный трансформатор? –

 Смежные вопросы

  • Нет связанных вопросов^_^