Salida estructurada en Nushell
Metadatos de la lección
- Autoría:
- Ignacio Slater-Muñoz
- Última actualización:
- 27 de marzo de 2026
Cambios recientes:
-
8880728· 27 de marzo de 2026 · ✨ feat(notes): add abstract slots and Python structured-output lesson ( GitLab / GitHub ) -
0b7190d· 26 de marzo de 2026 · 📚🐛 feat(scripting): add Nushell pipelines lesson and unblock checks ( GitLab / GitHub ) -
74c4c9f· 19 de marzo de 2026 · 📚✨ feat(bibliography): add Nushell structured-output references ( GitLab / GitHub )
Encuentra el código de la lección:
Abstract
Nushell permite producir datos estructurados desde el comienzo mediante records y listas. Al igual que PowerShell, en vez de construir texto y luego reinterpretarlo, puedes trabajar directamente con valores que conservan su forma.
El objetivo de esta lección es distinguir entre un record y una lista de records, y entender por qué ambos pueden verse como tabla sin dejar de ser datos estructurados.
Records como punto de partida
En la lección de PowerShell, el recorrido iba desde hacia [hashtable] [hashtable] . En Nushell, ese paso aparece antes: un record ya representa desde el inicio un valor estructurado con campos nombrados. No
es lo mismo que [PSCustomObject] [PSCustomObject] , pero cumple un
rol similar al preservar la forma de los datos sin reducirlos a texto.
[PSCustomObject] [PSCustomObject]
export def new-sighting [
--location: string,
--sighted_at: datetime
--troll_type: string = "unknown",
] {
{
location: $location
troll_type: $troll_type
sighted_at: $sighted_at
}
} Detalles clave
{ k: v }{ k: v } crea un record — un
valor compuesto por campos nombrados. Luego puedes acceder a sus propiedades como:
$record.key $record.key .
Uso
use ./structured-output/sighting-module.nu *
let sighting = new-sighting --location "Jøtunheimen Mountains" --sighted_at (date now) --troll_type "Mountain Troll"
$sighting╭────────────┬───────────────────────╮
│ location │ Jøtunheimen Mountains │
│ troll_type │ Mountain Troll │
│ sighted_at │ 20 seconds ago │
╰────────────┴───────────────────────╯Aunque Nushell lo muestre con una disposición tabular, el resultado sigue siendo un único valor estructurado con campos nombrados. Esa visualización no lo convierte en tabla como tipo de dato aparte.
Listas de records y visualización tabular
Un record representa una entidad. Una lista de records representa varias entidades con la misma estructura.
Cuando la consola recibe una lista de records con la misma forma, puede mostrarla como tabla. Esa tabla es una visualización de los datos, no un tipo distinto ni una transformación de su forma subyacente.
export def get-explorations [] {
[
{ world: "Desert of Time", hazard: "Temporal Distortion", explorer: "Cocona" }
{ world: "School Paradise", hazard: "Memory Loop", explorer: "Papika" }
{ world: "Candy Kingdom", hazard: "Illusion Collapse", explorer: "Yayaka" }
]
} Detalles clave
[ ... ][ ... ]: crea una lista que puede contener múltiples
valores; aquí, múltiples records.
Uso
use ./structured-output/exploration-module.nu *
let explorations = (get-explorations)
$explorations╭───┬─────────────────┬─────────────────────┬──────────╮
│ # │ world │ hazard │ explorer │
├───┼─────────────────┼─────────────────────┼──────────┤
│ 0 │ Desert of Time │ Temporal Distortion │ Cocona │
│ 1 │ School Paradise │ Memory Loop │ Papika │
│ 2 │ Candy Kingdom │ Illusion Collapse │ Yayaka │
╰───┴─────────────────┴─────────────────────┴──────────╯Conclusiones
Un record y una lista de records no son lo mismo, aunque ambos puedan mostrarse de forma tabular. Lo importante es reconocer qué valor estás produciendo.Puntos clave
- Un record modela una entidad con campos nombrados.
- Una lista de records modela varias entidades con la misma estructura.
- La tabla es una forma de mostrar los datos, no un tipo distinto.
¿Qué nos llevamos?
La lección de fondo no es solo que Nushell pueda mostrar tablas, sino que permite conservar la forma de los datos desde el origen. Cuando esa forma se entiende bien, la salida deja de ser un detalle visual y pasa a ser una base real para reutilizar, inspeccionar y componer comandos.¿Con ganas de más?
Referencias recomendadas
- “ Working with Records ” en NushellExplica cómo Nushell trata los records como valores estructurados equivalentes, en la práctica, a una fila individual de una tabla. Recorre su sintaxis de creación, la forma en que se muestran en consola y varias operaciones básicas para trabajar con ellos sin perder su estructura. También muestra cómo agregar o actualizar campos, combinar records, recorrer sus pares clave-valor e identificar qué comandos de tablas también se aplican a este tipo de dato. Es una buena lectura si quieres profundizar en el modelo mental detrás de los records más allá de los ejemplos introductorios de esta lección.
Notas
- Ejemplo inspirado en Trolljegeren. Volver
- Ejemplo inspirado en Flip Flappers. Volver