Saltar a contenido

Tipos de datos

Tipos de cast

El operador rename acepta un tercer parámetro opcional para convertir el valor al tipo indicado.

Tipo Descripción Entrada Resultado
string Texto 123, true "123", "true"
number Decimal "3.14", 42 3.14, 42.0
integer Entero "42", 3.9 42, 3
boolean Booleano 1, "false" true, false
array Array "a,b,c" ["a","b","c"]

Si el valor es None o el string "null", todos los tipos retornan null sin error.

string

Convierte el valor a texto con str(). Si el valor es un booleano Python, lo convierte en minúsculas: True"true", False"false".

number

Convierte a float con float().

[{"var": "price"}, "precio", "number"]

integer

Convierte a int con int(). Trunca decimales sin redondear.

[{"var": "qty"}, "cantidad", "integer"]

boolean

  • Si el valor es el string "false" (insensible a mayúsculas) → false
  • Cualquier otro valor truthy → true
[{"var": "active"}, "activo", "boolean"]

array

Detecta separadores automáticamente en el siguiente orden de prioridad: ;, ,, ;, ,, ;, ,.

Si no encuentra separador, envuelve el valor en un array: "solo"["solo"].

[{"var": "tags"}, "etiquetas", "array"]

TypeResponse

Toda operación ETL retorna un objeto TypeResponse con la siguiente estructura:

Campo Tipo Descripción
data dict \| list Datos resultantes de la operación
total int Número de registros en data
success bool true si la operación fue exitosa
message str \| int Código de estado HTTP (200, 400, etc.)

Respuesta exitosa

{
  "data": [
    {"id_pedido": "123", "total": 99.99, "cliente": "Empresa ABC"}
  ],
  "total": 1,
  "success": true,
  "message": 200
}

Respuesta con error de transformación

Cuando una regla falla, success es false, message es 400 y data incluye el detalle del error:

{
  "data": {
    "error_message": "Error applying rule: ...",
    "input_data": [{"orderId": "123"}],
    "rules": {"rename": [...]}
  },
  "total": 0,
  "success": false,
  "message": 400
}

Referencias