Mule の DataWeave コンポーネントを使用して、有効でない、または少なくともRFC 4180に準拠していない CSV ファイルを読み取ろうとしています。問題は、引用符を含む値がいくつかあるが、フィールドがエスケープされていないことです。例えば、
col1,col2,col3
one,two "two" two,three
one",two,three
DataWeave が使用する CSV パーサーのルールを少し緩和して、二重引用符で始まらない値をエスケープされていない値として扱う簡単な方法はありますか? または、(DataWeave またはその他の変換を使用して) 引用符を含むすべてのテキスト行を無視できますか? 行の 1% 未満であり、これらの行はたまたまこの統合に関連していませんが、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
データウィーブ
%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"
}
]