1

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"
  }
]
4

1 に答える 1

-1

または、(DataWeave またはその他の変換を使用して) 引用符を含むすべてのテキスト行を無視できますか?

もちろん。DataWeave トランスフォーマーの前に、二重引用符を含むすべての行を入力から削除するだけです。

于 2015-12-09T00:09:09.290 に答える