Obtener datos de diccionarios

Obtener datos de diccionarios

Get data of dictionarieslink image 0

Imaginemos que tenemos el siguiente diccionario

	
< > Input
Python
dictionary = {
"id": 1,
"name": "John",
"age": 30
}
Copied

Si queremos obtener el valor de la edad lo que se suele hacer es dictionary["age"]

	
< > Input
Python
dictionary = {
"id": 1,
"name": "John",
"age": 30
}
dictionary["age"]
Copied
>_ Output
			
30

Pero, ¿qué pasa si la key que ponemos no está en el diccionario? ¿Nos dará un error?

	
< > Input
Python
dictionary["country"]
Copied
>_ Output
			
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In[4], line 1
----> 1 dictionary["country"]
KeyError: 'country'

Por lo que si esto pasa en producción se caerá el programa

Así que para solucionarlo podemos usar un try except para manejar el error

	
< > Input
Python
try:
dictionary["country"]
except KeyError:
print("Key not found")
Copied
>_ Output
			
Key not found

Pero otra solución para no llenar el código de try except es usar el método get que nos permite obtener el valor de una key y si no existe nos devuelve un valor por defecto

	
< > Input
Python
dictionary.get("country", "Key not found")
Copied
>_ Output
			
'Key not found'

Otra opción es no colocar la segunda opción, en ese caso obtenemos None si la key no existe

	
< > Input
Python
country = dictionary.get("country")
print(country)
Copied
>_ Output
			
None

Preguntas frecuentes

¿Cuál es la diferencia entre dictionary['key'] y dictionary.get('key') en Python?

dictionary["country"] lanza un KeyError: 'country' si la clave no existe, lo que puede tirar el programa en producción. dictionary.get("country") nunca lanza excepción: devuelve None por defecto, o el valor por defecto que le pases como segundo argumento, por ejemplo dictionary.get("country", "Key not found") devuelve el string 'Key not found' en lugar de fallar.

¿Cómo evitar un KeyError al acceder a una clave que no existe en un diccionario sin usar try/except?

En vez de envolver cada acceso en un bloque try: dictionary["country"] except KeyError: print("Key not found"), puedes usar directamente el método .get(): dictionary.get("country", "Key not found") devuelve el valor por defecto indicado si la clave no está, evitando llenar el código de bloques try/except repetidos.

Seguir leyendo

Últimos posts -->

¿Has visto estos proyectos?

Gymnasia

Gymnasia Gymnasia
Expo
React Native
TypeScript
OpenAI
Anthropic

App de fitness con dos agentes que se ejecutan íntegramente en el dispositivo, sin backend, de forma que los datos del usuario nunca salen del móvil. Un coach conversacional BYOK con tools locales y system prompt remoto con fallback offline, y un estimador de comidas que saca los macronutrientes de una foto del plato, con lectura de códigos de barras contra OpenFoodFacts.

LangGraph Deep Researcher

LangGraph Deep Researcher LangGraph Deep Researcher
Python
LangGraph
FastAPI
React
TypeScript
Docker

Sistema multiagente de investigación construido con LangGraph. Un supervisor descompone tu pregunta en temas y lanza subagentes de búsqueda en paralelo; cada uno comprime sus hallazgos antes de pasarlos a un agente redactor que escribe el informe final en markdown con sus fuentes. Streaming en vivo por WebSockets, modelo configurable por rol y claves de API propias que nunca se guardan en el servidor.

Tau

Tau Tau
Python
LangChain

Sistema multiagente de tutoría para estudiantes de secundaria, con un agente por asignatura y material de curso elaborado y validado por un equipo de profesores. Llegó a usarse con alumnos reales en un colegio privado en España y en un instituto en Colombia.

Ver todos los proyectos -->
>_ Disponible para proyectos

¿Tienes un proyecto con IA?

Hablemos.

maximofn@gmail.com

Especialista en Machine Learning e Inteligencia Artificial. Desarrollo soluciones con IA generativa, agentes inteligentes y modelos personalizados.

¿Quieres ver alguna charla?

Últimas charlas -->

¿Quieres mejorar con estos tips?

Últimos tips -->

Usa esto en local

Los espacios de Hugging Face nos permite ejecutar modelos con demos muy sencillas, pero ¿qué pasa si la demo se rompe? O si el usuario la elimina? Por ello he creado contenedores docker con algunos espacios interesantes, para poder usarlos de manera local, pase lo que pase. De hecho, es posible que si pinchas en alún botón de ver proyecto te lleve a un espacio que no funciona.

Flow edit

Flow edit Flow edit

Edita imágenes con este modelo de Flow. Basándose en SD3 o FLUX puedes editar cualquier imagen y generar nuevas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos los contenedores -->
>_ Disponible para proyectos

¿Tienes un proyecto con IA?

Hablemos.

maximofn@gmail.com

Especialista en Machine Learning e Inteligencia Artificial. Desarrollo soluciones con IA generativa, agentes inteligentes y modelos personalizados.

¿Quieres entrenar tu modelo con estos datasets?

short-jokes-dataset

HuggingFace

Dataset de chistes en inglés

Uso: Fine-tuning de modelos de generación de texto humorístico

231K filas 2 columnas 45 MB
Ver en HuggingFace →

opus100

HuggingFace

Dataset con traducciones de inglés a español

Uso: Entrenamiento de modelos de traducción inglés-español

1M filas 2 columnas 210 MB
Ver en HuggingFace →

netflix_titles

HuggingFace

Dataset con películas y series de Netflix

Uso: Análisis de catálogo de Netflix y sistemas de recomendación

8.8K filas 12 columnas 3.5 MB
Ver en HuggingFace →
Ver más datasets -->