Skip to content

Data Transform

CSV, JSON, XML, YAML parsing, generation, and pipeline transformations.

16 modules

ModuleDescription
Leer archivo CSVLeer y parsear archivo CSV en array de objetos
Escribir archivo CSVEscribir array de objetos a archivo CSV
Parsear JSONParsear cadena JSON a objeto
Convertir a JSONConvertir objeto a cadena JSON
JSON a CSVConvertir datos JSON o archivos a formato CSV
Tubería de DatosEncadena múltiples transformaciones de datos en un solo paso
Plantilla de textoLlenar plantilla de texto con variables
Generar XMLGenerar cadena XML desde objeto o arreglo
Analizar XMLAnalizar cadena XML en objeto
Generar YAMLGenerar cadena YAML desde objeto o arreglo
Analizar YAMLAnalizar cadena YAML en objeto
Claves de objetoObtener todas las claves de un objeto
Combinar objetosCombinar multiples objetos en uno
Omitir de objetoOmitir claves especificas de un objeto
Seleccionar de objetoSeleccionar claves especificas de un objeto
Valores de objetoObtener todos los valores de un objeto

Modules

Leer archivo CSV

data.csv.read

Leer y parsear archivo CSV en array de objetos

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
delimiterselect (,, ;, , `, `)No,
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
skip_headerbooleanNoFalseSkip first row (header)

Output:

FieldTypeDescription
statusstringEstado de la operacion
dataarrayEstado de la operacion
rowsnumberEstado de la operacion
columnsarrayArray de objetos de fila

Example: Example

yaml
file_path: data/users.csv
delimiter: ,
encoding: utf-8

Escribir archivo CSV

data.csv.write

Escribir array de objetos a archivo CSV

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
dataarrayYes-Array of data items to process
delimiterselect (,, ;, , `, `)No,
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file

Output:

FieldTypeDescription
statusstringEstado de la operacion
file_pathstringEstado de la operacion
rows_writtennumberEstado de la operacion

Example: Example

yaml
file_path: output/results.csv
data: [{"name": "John", "score": 95}, {"name": "Jane", "score": 87}]

Parsear JSON

data.json.parse

Parsear cadena JSON a objeto

Parameters:

NameTypeRequiredDefaultDescription
json_stringstringYes-JSON string to parse into an object or array

Output:

FieldTypeDescription
statusstringEstado de la operacion
dataobjectEstado de la operacion

Example: Example

yaml
json_string: {"name": "John", "age": 30}

Convertir a JSON

data.json.stringify

Convertir objeto a cadena JSON

Parameters:

NameTypeRequiredDefaultDescription
dataobjectYes-Data object to process
prettybooleanNoFalseFormat with indentation
indentnumberNo2Indentation spaces (if pretty=true)

Output:

FieldTypeDescription
statusstringEstado de la operacion
jsonstringEstado de la operacion

Example: Example

yaml
data: {"name": "John", "age": 30}
pretty: true

JSON a CSV

data.json_to_csv

Convertir datos JSON o archivos a formato CSV

Parameters:

NameTypeRequiredDefaultDescription
input_dataanyYes-JSON data (array of objects) or path to JSON file
output_pathstringNo/tmp/output.csvPath where the output file will be saved
delimiterselect (,, ;, , `, `)No,
include_headerbooleanNoTrueInclude column headers in first row
flatten_nestedbooleanNoTrueFlatten nested objects using dot notation (e.g., address.city)
columnsarrayNo[]Specific columns to include (empty = all columns)

Output:

FieldTypeDescription
output_pathstringRuta al archivo CSV generado
row_countnumberRuta al archivo CSV generado
column_countnumberRuta al archivo CSV generado
columnsarrayNumero de filas escritas

Example: Convert JSON array to CSV

yaml
input_data: [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
output_path: /tmp/users.csv

Example: Convert JSON file

yaml
input_data: /path/to/data.json
output_path: /path/to/output.csv

Tubería de Datos

data.pipeline

Encadena múltiples transformaciones de datos en un solo paso

Parameters:

NameTypeRequiredDefaultDescription
inputanyYes-Datos de entrada para transformar (arreglo u objeto)
stepsarrayYes-Datos de entrada para transformar (arreglo u objeto)

Output:

FieldTypeDescription
resultanyArreglo de pasos de transformación a aplicar en orden
original_countintegerDatos transformados
result_countintegerDatos transformados
steps_appliedintegerCantidad de elementos después de la transformación

Example: Example

yaml
input: ${input.users}
steps: [{"filter": {"field": "active", "condition": "eq", "value": true}}, {"sort": {"field": "name", "order": "asc"}}]

Example: Example

yaml
input: ${input.records}
steps: [{"map": {"extract": "id"}}, {"limit": 10}]

Example: Example

yaml
input: ${input.data}
steps: [{"filter": {"field": "status", "condition": "eq", "value": "completed"}}, {"pick": ["id", "name", "timestamp"]}, {"sort": {"field": "timestamp", "order": "desc"}}, {"skip": 5}, {"limit": 20}]

Plantilla de texto

data.text.template

Llenar plantilla de texto con variables

Parameters:

NameTypeRequiredDefaultDescription
templatestringYes-Text template with {variable} placeholders
variablesobjectYes-Object with variable values

Output:

FieldTypeDescription
statusstringEstado de la operacion
resultstringEstado de la operacion

Example: Example

yaml
template: Hello {name}, you scored {score} points!
variables: {"name": "Alice", "score": 95}

Generar XML

data.xml.generate

Generar cadena XML desde objeto o arreglo

Parameters:

NameTypeRequiredDefaultDescription
dataobjectYes-Datos a convertir a XML
root_tagstringNorootNombre de la etiqueta del elemento raíz
prettybooleanNoTrueFormato bonito para la salida XML
encodingstringNoutf-8Codificación de caracteres para la salida XML
declarationbooleanNoTrueIncluir encabezado de declaración XML

Output:

FieldTypeDescription
xmlstringCadena XML generada

Example: Example

yaml
data: {"user": {"@attributes": {"id": "1"}, "name": "John", "age": "30"}}
root_tag: users
pretty: true

Analizar XML

data.xml.parse

Analizar cadena XML en objeto

Parameters:

NameTypeRequiredDefaultDescription
contentstringNo-Cadena XML a analizar
file_pathstringNo-Ruta al archivo XML a analizar
preserve_attributesbooleanNoTruePreservar atributos XML en la salida analizada

Output:

FieldTypeDescription
resultobjectXML analizado como objeto
root_tagstringNombre de la etiqueta del elemento raíz

Example: Example

yaml
content: <users><user id="1"><name>John</name></user></users>
preserve_attributes: true

Generar YAML

data.yaml.generate

Generar cadena YAML desde objeto o arreglo

Parameters:

NameTypeRequiredDefaultDescription
dataanyYes-Datos a convertir a YAML
default_flow_stylebooleanNoFalseUsar estilo de flujo para estructuras anidadas
sort_keysbooleanNoFalseOrdenar claves alfabéticamente
indentnumberNo2Número de espacios para la indentación
allow_unicodebooleanNoTruePermitir caracteres unicode en la salida

Output:

FieldTypeDescription
yamlstringCadena YAML generada

Example: Example

yaml
data: {"name": "John", "age": 30, "cities": ["NYC", "LA"]}
sort_keys: false
indent: 2

Analizar YAML

data.yaml.parse

Analizar cadena YAML en objeto

Parameters:

NameTypeRequiredDefaultDescription
contentstringNo-Cadena YAML a analizar
file_pathstringNo-Ruta al archivo YAML a analizar
multi_documentbooleanNoFalseAnalizar YAML de múltiples documentos (separados por ---)

Output:

FieldTypeDescription
resultanyYAML analizado como objeto o arreglo
typestringTipo del resultado analizado

Example: Example

yaml
content: name: John
age: 30
cities:
  - NYC
  - LA
multi_document: false

Example: Example

yaml
content: ---
name: John
---
name: Jane
multi_document: true

Claves de objeto

object.keys

Obtener todas las claves de un objeto

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary

Output:

FieldTypeDescription
keysarrayLista de claves del objeto
countnumberLista de claves del objeto

Example: Get object keys

yaml
object: {"name": "John", "age": 30, "city": "NYC"}

Combinar objetos

object.merge

Combinar multiples objetos en uno

Parameters:

NameTypeRequiredDefaultDescription
objectsarrayYes-Array of objects to process

Output:

FieldTypeDescription
resultobjectObjeto combinado

Example: Merge user data

yaml
objects: [{"name": "John", "age": 30}, {"city": "NYC", "country": "USA"}, {"job": "Engineer"}]

Omitir de objeto

object.omit

Omitir claves especificas de un objeto

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary
keysarrayYes-Keys to pick or omit

Output:

FieldTypeDescription
resultobjectObjeto sin claves omitidas

Example: Omit sensitive fields

yaml
object: {"name": "John", "age": 30, "password": "secret", "ssn": "123-45-6789"}
keys: ["password", "ssn"]

Seleccionar de objeto

object.pick

Seleccionar claves especificas de un objeto

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary
keysarrayYes-Keys to pick or omit

Output:

FieldTypeDescription
resultobjectObjeto con solo claves seleccionadas

Example: Pick user fields

yaml
object: {"name": "John", "age": 30, "email": "john@example.com", "password": "secret"}
keys: ["name", "email"]

Valores de objeto

object.values

Obtener todos los valores de un objeto

Parameters:

NameTypeRequiredDefaultDescription
objectobjectYes-Input object/dictionary

Output:

FieldTypeDescription
valuesarrayLista de valores del objeto
countnumberLista de valores del objeto

Example: Get object values

yaml
object: {"name": "John", "age": 30, "city": "NYC"}

Released under the Apache 2.0 License.