我尝试使用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
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"
}
]
答案 0 :(得分:-1)
或者,我可以(使用DataWeave或其他转换)忽略所有带引号的文本行吗?
不确定。只需删除输入中包含双引号的所有行,在 DataWeave转换器之前。