我正在尝试使用 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"
}
]