error de clave de python

Funciones y métodos de Python

Se genera un Python KeyError cuando intenta acceder a un elemento en un diccionario que no existe. Puede corregir este error modificando su programa para seleccionar un elemento de un diccionario que sí existe. O puede manejar este error comprobando primero si existe una clave.

¿Acaba de recibir un KeyError? ¡No se preocupe! Cuando se genera un KeyError, significa que está intentando acceder a una clave dentro de un diccionario que no existe. Gestionar y corregir este error es fácil cuando se sabe cómo.

Los KeyErrors se pueden manejar usando un try & hellip; except block, usando el & ldquo; in & rdquo; palabra clave, o buscando una clave de antemano mediante la indexación.

En esta guía, vamos a hablar sobre qué son los KeyErrors de Python y por qué se generan. Analizaremos un ejemplo de un error y cómo solucionarlo para que sepa cómo abordar KeyErrors en el futuro.

¡Comencemos!




¿Qué es un Python KeyError?

Un Python KeyError ocurre cuando intenta acceder a un elemento en un diccionario que no existe usando la sintaxis de indexación. Este error se genera porque Python no puede devolver un valor para un elemento que no existe en un diccionario.

Un diccionario de Python es un conjunto de pares clave-valor que se almacenan entre llaves ({}):

 raspberry_pi = {"nombre" : "Raspberry Pi 4", "precio": 35,00, "RAM": "4GB"} 

Las claves son & ldquo; nombre & rdquo ;, & ldquo; precio & rdquo ;, y & ldquo; RAM & rdquo; . Las claves aparecen antes de dos puntos en un diccionario.

El 81% de los participantes afirmaron que se sentían más seguros acerca de sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Veamos qué sucede si intentamos recuperar el número de puertos USB en nuestro diccionario:

 print (raspberry_pi ["usb_ports"] ) 

Nuestro código devuelve:

 KeyError: 'usb_ports' 

Este error nos dice que la clave que hemos especificado no existe. En este caso, la clave que falta es & ldquo; usb_ports & rdquo ;.




KeyError Python: Soluciones

Para manejar un diccionario de Python KeyError puede:

  • Busque una clave de antemano mediante la indexación
  • Utilice el & ldquo; en & rdquo; palabra clave para buscar una clave
  • Use un try & hellip; except block.

La solución para manejar el KeyError que mejor funcione para usted variará dependiendo de su caso de uso.


Usar el método get () del diccionario

El método get () del diccionario de Python devuelve un valor en un diccionario. Puede especificar un valor predeterminado con el método get (). Este valor predeterminado se devuelve si el nombre de la clave que ha especificado no tiene un valor.

Considere el siguiente código:

Ejecutemos nuestro código usando el intérprete de Python y veamos qué sucede:

 ¿Qué información le gustaría recuperar? ALU La ALU para esta computadora no está disponible. 

Nuestro código usa el método get () del diccionario para recuperar & ldquo; ALU & rdquo; de nuestro diccionario. Ningún valor se corresponde con este nombre de clave. El método get () devuelve el valor predeterminado que hemos especificado, que es & ldquo; no disponible & rdquo; .

Verifique una clave de antemano usando la indexación

Puede verificar la existencia de una clave usando la indexación para evitar encontrar un KeyError. Si una clave está en un diccionario, puede usar esa clave. De lo contrario, puede indicarle a su programa que haga otra cosa que no dependa de esa clave. 

Vamos a escribir un programa que acceda a las claves en nuestro & ldquo; raspberry_pi & rdquo; diccionario en Python. Comprobemos si nuestra clave está en nuestro diccionario usando indexación:

 raspberry_pi = {"name": " Raspberry Pi 4 "," precio ": 35.00," RAM ":" 4GB "} get_key = input (" ¿Qué información le gustaría recuperar (nombre, precio, RAM)? ") If raspberry_pi [get_key]: print (" El {} para esta computadora es {}. ". Formato (get_key, raspberry_pi [get_key])) else: print (" Esta información no está disponible. ") 

Hemos utilizado un Python & ldquo; if & rdquo; declaración para comprobar si nuestra clave existe. & ldquo; raspberry_pi [get_key] & rdquo; solo devolverá un valor si la clave existe. Esto significa que si nuestra clave existe, nuestro & ldquo; if & rdquo; se ejecutará la sentencia. Si nuestra clave no existe, el & ldquo; else & rdquo; se ejecutará la sentencia. 

Intentemos averiguar la RAM de nuestra Raspberry Pi:

 ¿Qué información que le gustaría recuperar (nombre, precio, RAM)? RAM La RAM de esta computadora es de 4 GB. 

Ahora, intentemos averiguar cuántos puertos USB tiene la computadora:

 ¿Qué información le gustaría recuperar (nombre, precio, RAM)? USB Esta información no está disponible. 

¡Nuestro código no genera un KeyError! Esto se debe a que primero hemos comprobado si nuestra clave existe antes de usarla. Si hubiéramos usado raspberry_pi [get_key] dentro de nuestro & ldquo; else & rdquo; declaración, nuestro código devolvería un KeyError.


Usando un try & hellip; except Block

Un Python try & hellip; except block intentará ejecutar una línea de código. Si esa línea de código no se puede ejecutar, nuestro código generará un error personalizado de acuerdo con las excepciones que ha indicado.

Podemos usar un bloque try & hellip; except para determinar la existencia de un error y evitar que un KeyError inesperado ayude a nuestro programa Python.

Definamos un error personalizado para nuestro ejemplo de computadora de antes usando un bloque try & hellip; except:

"Career Karma entró en mi vida cuando más lo necesitaba y rápidamente me ayudó a combinar con un bootcamp. ¡Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software en Rockbot

Usamos un bloque try & hellip; except para intentar imprimir una pieza particular de información sobre la computadora Raspberry Pi en la consola. Si nuestro código genera un KeyError en cualquier parte del bloque & ldquo; try & rdquo;, nuestro código ejecuta el contenido del & ldquo; excepto & rdquo; bloquear.

Esto significa que cada vez que se genera un KeyError, & ldquo; Esta información no está disponible & rdquo; se imprime en la consola. Intentemos averiguar sobre el nombre de la computadora :

 ¿Qué información le gustaría recuperar (nombre, precio, RAM)? nombre El nombre de esta computadora es Raspberry Pi 4. 

Ahora, intentemos conocer la disponibilidad del puerto USB de la computadora:

¿Qué información le gustaría recuperar (nombre, precio, RAM)? USB Esta información no está disponible.

Nuestro código genera un KeyError dentro de nuestro & ldquo; try & rdquo; cuadra. Esto hace que nuestro código ejecute & ldquo; except & rdquo; bloque de código.

Verifique una clave antes de usar en

El & ldquo; in & rdquo; La palabra clave es uno de los operadores de membresía de Python. Comprueba si un elemento está en una lista de valores. Puede utilizar el & ldquo; en & rdquo; palabra clave para comprobar si una clave está dentro de un diccionario. 

Este programa comprobará si existe una clave antes de imprimir su valor en la consola:

 raspberry_pi = {" nombre ":" Raspberry Pi 4 "," precio ": 35.00," RAM ":" 4GB "} get_key = input (" ¿Qué información le gustaría recuperar (nombre, precio, RAM)? ") if get_key in raspberry_pi: print (" El {} para esta computadora es {}. ". formato (get_key, raspberry_pi [get_key])) else: print (" Esta información no está disponible . ") 

Este código verificará si el valor de & ldquo; get_key & rdquo; es una clave dentro del diccionario & ldquo; raspberry_pi & rdquo;. Si la clave existe, se ejecutará la instrucción & ldquo; if & rdquo; . De lo contrario, se ejecutará la instrucción & ldquo; else & rdquo ;. Intentemos buscar información sobre la CPU de la computadora:

 ¿Qué información le gustaría recuperar (nombre, precio, RAM)? CPU Esta información no está disponible. 

Busquemos el nombre de la computadora:

 ¿Qué información le gustaría recuperar (nombre, precio, RAM)? name El nombre de esta computadora es Raspberry Pi 4. 

¡Nuestro código funciona! Cuando buscamos una clave que no existe, el & ldquo; else & rdquo; se ejecuta la declaración. Esto significa que no se puede generar ningún KeyError en nuestro código porque no intentamos acceder a una clave en & ldquo; else & rdquo; bloque.

¡Nuestro código funciona! Cuando buscamos una clave que no existe, el & ldquo; else & rdquo; se ejecuta la declaración. Esto significa que no se puede generar ningún KeyError en nuestro código porque no intentamos acceder a una clave en & ldquo; else & rdquo; block.




Conclusión

Se genera un KeyError cuando intenta acceder a un valor de un diccionario que no existe. Para resolver un error de clave, puede buscar una clave por adelantado antes de usarla y solo usarla si la clave existe. Puede usar un bloque try & hellip; except para manejar un error clave.

Para obtener consejos sobre cómo aprender el lenguaje de programación Python, consulte nuestro completo Guía de cómo aprender Python . En esta guía encontrará vínculos a los principales recursos de aprendizaje, libros y cursos.





error de clave de python: StackOverflow Questions

Tutorials