es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El archivo CSV generado por DataWeave 2.0 tiene una línea vacía al final. ¿Cómo eliminar la línea vacía?

Mi carga útil es
lang-json
[
{
"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"
}
]

Código DataWeave para transformarlo en CSV con datastream:

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

Salida actual:
Salida actual con una línea vacía en el final
Salida esperada:
Salida esperada sin la línea 5
Cualquier ayuda en esto será muy apreciada. Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar la línea vacía al final de la salida CSV, puede modificar el código DataWeave para usar la función reduce en lugar de la función map:

    %dw 2.0
    output application/csv header=true, separator = "|" , deferred=true
    ---
    payload reduce (
        (item, acc = "") -> 
            if (acc == "") acc ++ item.TYPE ++ "|" ++ item.METHOD ++ "|" ++ item.SERVICE_ID ++ "|" ++ item.SERVICE
            else acc ++ "\n" ++ item.TYPE ++ "|" ++ item.METHOD ++ "|" ++ item.SERVICE_ID ++ "|" ++ item.SERVICE
    )
    

    Este código creará una representación de cadena de la salida CSV mediante la iteración de cada ítem en el payload y la concatenación de sus propiedades con el carácter separador apropiado (|). La función reduce asegura que no se añada una línea vacía al final de la salida.

Comments are closed.