使用 dataweave 2.0 在 csv 文件中附加一个空行

Appending an empty row in csv file using dataweave 2.0

我正在尝试生成一个 CSV 输出,第一行带有 Headers,然后第二行留空,数据从第三行开始。如何使用 DataWeave 2.0.

生成此文件

提前致谢。

根据 spec 您想要生成的不是 CSV 文件。

最接近它的是添加一个没有数据的行,这可以通过下面的 DW 表达式来完成:

%dw 2.0
output application/csv
var data = [
    {
        header1: "v1",
        header2: "v2",
        header3: "v3"
    },
    {
        header1: "v4",
        header2: "v5",
        header3: "v6"
    }
]

var empty = {
    header1: "",
    header2: "",
    header3: ""
}

---
empty >> data

正确答案是乔治发布的。带有空行的输出不是有效的 CSV,因此不能使用 DataWeave 中的 CSV 输出来生成它。但是,您可以通过将 header 和数据编写为单独的字符串并在中间连接一个换行符来按照自己的方式进行破解。我不建议这样做,但如果你有一些奇怪的要求并且你被迫这样做,我修改了乔治的例子来做到这一点。

%dw 2.0
output text/plain
var data = [
    {
        header1: "v1",
        header2: "v2",
        header3: "v3"
    },
    {
        header1: "v4",
        header2: "v5",
        header3: "v6"
    }
]

var headers = data[0] mapObject ((value, key, index) -> (index): key) // take the headers from the first row of data to be used as the data of the first row in the output
---
write(headers, "application/csv", {header:false}) ++ "\n" ++ write(data, "application/csv", {header:false})