1

我正在尝试使用 Mule 的 DataWeave 组件来读取无效的 CSV 文件,或者至少不符合RFC 4180。问题是有些值包含引号,但该字段没有转义。例如,

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

有没有一种直接的方法可以稍微放松 DataWeave 使用的 CSV 解析器中的规则,以便它将不以双引号开头的值视为非转义值?或者,我可以(使用 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

数据编织

%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 回答