我正在尝试将csv转换为csv。我的deliliter是,
,输入中有一些文本,也有逗号示例:"Fun,Chair,tables"
但它将用引号括起来。 Data Weave认为这是分隔符,并在响应中分成不同的列。
请找到输入CSV文件
sequence,items
1,Fun
2,"Fun,chairs,tables"
3,Games
但是得到回应
Number,itemDetails
1,Fun
2,Fun\,Chair\,tables
3,Games
在上面的回复中,第二个是分裂的,我没想到 我的dataweaver
%dw 1.0
%output application/csv header=true
---
payload map {
Number:$.sequence,
itemDetails:$.items
预期回应是
Number,itemDetails
1,Fun
2,"Fun,chairs,tables"
3,Games
这里的问题是"Fun,chairs,tables"
,双引号应该作为测试字段,而data weaver
将其视为分隔符。
在Data weave标头中,尝试使用quote= " "
和escape=" "
。但不行。
我在Datamapper上尝试过相同的工作,完美无缺。相信有些事情需要在标题上完成,不知道是什么,但??
还检查了Data Weave CSV设置中读取配置属性中的属性。没有帮助。
编辑:
使用DataWeaver转义序列,
%output application/csv header=true escape="\""
以下是回复
Number,itemDetails
1,Fun
2,Fun",Chair",tables
3,Games
您的想法和建议会有所帮助。提前谢谢。
答案 0 :(得分:1)
您是否尝试过escape =“\”“?我认为这会逃避双引号
答案 1 :(得分:0)
尝试
%output application/csv quoteValues=true ,escape =" "
答案 2 :(得分:0)
您可以自己将值括在引号中
%dw 1.0
%output application/csv header=true
---
payload map ((item , index) -> {
Number: item.sequence,
itemDetails: item.items
} when index != 1
otherwise {
Number: item.sequence,
itemDetails: "\"" ++ item.items ++ "\""
})
<强>输出强>
Number,itemDetails
1,Fun
2,"Fun\,chairs\,tables"
3,Games
答案 3 :(得分:0)
我们必须像下面那样更改reader属性。在读取csv输入时,我也遇到了同样的问题。
<dw:reader-property name="escape" value="""/>
以上针对我的案例可以解决