【问题标题】:CSV file generated from dataweave 2.0 have an empty line at the end. How to remove the empty line从 dataweave 2.0 生成的 CSV 文件末尾有一个空行。如何删除空行
【发布时间】:2022-01-07 16:58:32
【问题描述】:

我的有效载荷是

[
  {
    "type": "Code",
    "method": "more",
    "Service": "Post",
    "Service_ID": "1"
  },
  {
     "type": "Code",
    "method": "more",
    "Service": "Put",
    "Service_ID": "2"
  },
  {
      "type": "Code",
    "method": "more",
    "Service": "get",
    "Service_ID": "3"
  }
]

DataWeave 代码将其转换为带有数据流的 CSV:

%dw 2.0
output application/csv header=true, separator = "|", deferred=true
---
payload map ( payload01 , indexOfPayload01 ) -> {
    TYPE: payload01."type",
    METHOD: payload01."method",
    SERVICE_ID: payload01."Service_ID",
    SERVICE: payload01."Service"
}

实际输出: Actual output with empty line 5 at the end

预期输出: expected output without the line 5

对此的任何帮助将不胜感激。提前致谢

【问题讨论】:

标签: dataweave mulesoft mule4


【解决方案1】:

在 DataWeave 中,每个输出行都以 CSV writer properties 中定义的 lineSeparator 字符串结尾,该字符串添加到每条记录的末尾。默认为系统的新行。您看到的并不完全是空行,而是上一行以行尾结束。如果您将 lineSeparator 更改为不同的东西,例如“X”,您将在一行中获得此输出:

TYPE|METHOD|SERVICE_ID|SERVICEXCode|more|1|PostXCode|more|2|PutXCode|more|3|getX

我不确定为什么会出现问题。如果您对最后一行没有问题,请忽略它。

我不建议这样做,但您可以将 CSV 输出视为字符串并删除最后一个新行序列,但要注意可能多个字符,具体取决于操作系统的配置。大型有效负载在内存中操作像这样的大字符串是不切实际的,您可能会耗尽内存。

【讨论】:

    猜你喜欢
    • 2019-11-05
    • 2017-03-27
    • 2021-09-27
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多