> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/data-logic/data-operations/dictionary-operations.md).

# Dictionary Operations

Este bloque de función proporciona una interfaz flexible para crear, modificar, consultar y convertir datos tipo diccionario durante tu escenario. Selecciona un método en el control y el bloque adaptará sus entradas y salidas para coincidir con la operación elegida.

## 📥 Entradas

Las entradas disponibles dependen del método seleccionado. El bloque cambia dinámicamente los conectores cuando eliges un método. Nombres comunes que podrías ver:

* `Dict` — Datos de diccionario sobre los que operar (cuando sea requerido)
* `Keys` — Clave única (string) o lista de claves para creación
* `Values` — Valor único o lista de valores para creación
* `Input Dict` — Diccionario fuente para operaciones de update/remove/extend/get/copy
* `Key` — Cadena de clave usada para update/remove/get
* `Value` — Valor usado para la operación update
* `New Dict` — Diccionario para fusionar en uno existente (extend)
* `Text` — Texto JSON para parsear (parse)
* `Dict` (para conversión) — Diccionario a convertir a cadena de texto

## 📤 Salidas

Las salidas también dependen del método seleccionado. Salidas típicas incluyen:

* `Dict` — Diccionario resultante después de create/update/remove/extend/copy
* `Text` — Cadena JSON resultante al convertir a texto o tras parsear

Si se usa un get con clave única, la salida puede devolver directamente el valor solicitado.

## 🕹️ Controles

`Select Method` Elige la operación de diccionario deseada. Métodos disponibles:

* `create`
* `update`
* `remove`
* `extend`
* `get`
* `copy`
* `parse`
* `to_string`

`Info` Área de texto contextual que muestra ayuda y ejemplos de uso para el método seleccionado.

Nota: cambiar `Select Method` actualizará inmediatamente los conectores del bloque para coincidir con la operación elegida.

## 🎨 Características

* Conectores dinámicos: las entradas y salidas se actualizan automáticamente según el método elegido para que solo veas los campos relevantes.
* Manejo rápido de JSON: parsea texto JSON a diccionarios y convierte diccionarios a cadenas JSON con métodos dedicados.
* Soporte para fusionar y editar: actualiza claves individuales, elimina claves o extiende un diccionario existente con otro.
* Soporte de copia: crea copias seguras para evitar cambios no deseados aguas abajo.
* Ayuda en línea: el área `Info` muestra orientación específica del método para reducir dudas.

## ⚙️ Mecanismo de ejecución

* Selecciona un método con `Select Method` y luego conecta los conectores que aparezcan.
* Cuando el escenario se ejecute, el bloque realiza la operación seleccionada sobre las entradas proporcionadas y emite los datos resultantes en las salidas correspondientes.
* Si las entradas no son válidas para la operación elegida (por ejemplo, listas de distinto largo en create, falta de clave en get/remove, o JSON inválido en parse), el bloque mostrará un mensaje de error para ayudarte a corregir la configuración.

## 📝 Instrucciones de uso

1. Añade el bloque y haz clic en `Select Method` para elegir la operación adecuada.
2. Conecta las fuentes a los conectores que aparezcan (por ejemplo, conecta `Keys` y `Values` al usar `create`).
3. Usa el área `Info` para ver ejemplos rápidos y notas específicas del método seleccionado.
4. Ejecuta el escenario y revisa las salidas en los conectores correspondientes.

## 💡 Tips y trucos

* Persistencia de valores: combina con `Data Memory` o `Data Write Local` / `Data Write Global` para mantener diccionarios accesibles a lo largo del escenario o entre ejecuciones.
* Depuración: usa `Debug Input` para inspeccionar el contenido del diccionario durante el desarrollo.
* Flujos JSON: empareja `parse` con un `String Input` (para JSON manual) o un bloque que genere texto, y luego usa el diccionario resultante en pasos posteriores. Usa `to_string` antes de guardar o publicar.
* Guardar/exportar: tras `to_string`, envía el texto a `CSV Export` o a `File/Folder Operations` si necesitas almacenar resultados.
* Uso condicional: verifica claves faltantes usando `Is None` después de un `get` para evitar errores en bloques posteriores.
* Actualizaciones incrementales: para construir una configuración gradualmente, usa `extend` junto con lecturas/escrituras periódicas (`Data Read Local` / `Data Write Local`) para mantener un diccionario maestro.
* Manejo de strings: usa `String Merge` o `Find Substring` para construir o validar claves/valores antes de pasarlos a update/create.

## 🛠️ Solución de problemas

* Listas desajustadas en create
  * Causa: `Keys` y `Values` se proporcionaron con listas de longitudes diferentes.
  * Solución: Asegúrate de que las longitudes coincidan o proporciona pares clave/valor únicos.
* Clave no encontrada en get/remove
  * Causa: la `Key` solicitada no existe en el `Input Dict` proporcionado.
  * Solución: Confirma las claves usando una salida de depuración o realiza una comprobación segura (por ejemplo, verificar existencia antes de llamar a get/remove).
* JSON inválido al usar parse
  * Causa: el `Text` proporcionado no es JSON válido (se requieren comillas dobles para claves/cadenas).
  * Solución: Valida tu JSON (usa `String Input` o copia desde una fuente JSON válida). El área `Info` muestra un formato de ejemplo.
* Cambios compartidos inesperados
  * Causa: cambios aguas abajo en una referencia de diccionario afectan a otros bloques.
  * Solución: usa `copy` o combina con `Data Memory` para controlar si trabajas sobre una copia o sobre el original.

Si necesitas visualizar o inspeccionar imágenes intermedias o valores mientras trabajas con lógica basada en diccionarios, considera conectar bloques visuales o de exportación apropiados (por ejemplo `Show Image` para salidas de imagen o `CSV Export` para resultados registrados).
