You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DataWeave中生成Multipart Form Data内的竖线分隔CSV文件问题

问题:竖线分隔CSV通过Multipart Form Data发送时被转为逗号分隔的解决方法

我尝试将竖线(|)分隔的CSV文件以Multipart Form Data形式发送至API,但生成多部分表单数据后,内容被自动转换为逗号(,)分隔。以下是相关代码和数据:

原DataWeave脚本

%dw 2.0
output multipart/form-data
---
{
    "parts": {
        "upload": {
            "headers": {
                "Content-Disposition": {
                    "name": "upload",
                    "filename": "test.csv",
                },
                "Content-Type": "application/csv"
            },
            "content": payload
        }
    }
}

输入Payload

id|name
001|test
002|test
003|test

当前输出

------=_Part_9925_416179401.1704798991668
Content-Type: application/csv
Content-Disposition: form-data; name="upload"; filename="test.csv"

id,name
001,test
002,test
003,test

------=_Part_9925_416179401.1704798991668--

期望输出

------=_Part_9925_416179401.1704798991668
Content-Type: application/csv
Content-Disposition: form-data; name="upload"; filename="test.csv"

id|name
001|test
002|test
003|test

------=_Part_9925_416179401.1704798991668--

解决方法

问题根源是DataWeave默认会识别CSV格式的payload并解析为对象,输出时又默认使用逗号作为分隔符重新生成CSV。要保留原始竖线分隔的内容,需强制将payload以纯文本形式传入multipart part,避免自动解析和格式化。

修改后的脚本如下:

%dw 2.0
output multipart/form-data
---
{
    "parts": {
        "upload": {
            "headers": {
                "Content-Disposition": {
                    "name": "upload",
                    "filename": "test.csv"
                },
                "Content-Type": "application/csv"
            },
            "content": payload as String
        }
    }
}

关键修改说明

在content字段中添加as String,强制将payload转为原始字符串类型传递,这样DataWeave就不会对CSV内容进行自动解析和格式转换,完美保留原本的竖线分隔符。


内容的提问来源于stack exchange,提问作者Prasanth Vukoti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:14:55