es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Incapaz de resolver KeyError en Python utilizando Flask.

Sigo recibiendo este KeyError aunque la clave “name” obviamente existe. He intentado algunos métodos para iterar a través de una matriz de diccionarios en Python sin suerte. Cualquier ayuda es apreciada.

import re
from flask import Flask, json, request
from werkzeug.user_agent import UserAgent

app = Flask(name)

users = [
{“name”: “bitley”,
“age”: 5000,
“items”: [
{“name”: “toyota”},
{“name”: “camry”}
]

}

]

#/GET usuario por ID
@app.route(‘/users/‘)
def get_user_by_name(name):
#verificar si el usuario existe
for user in users:
if user[‘name’] == ‘name’:
return json.jsonify(users)
return json.jsonify({“message: ” “user not found..”})

Error en la línea:

if user[‘name’] == ‘name’:

KeyError: ‘name’

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código anterior es que la condición dentro de la declaración if está comparando la cadena ‘name’ consigo misma en lugar del valor del parámetro de nombre pasado a la ruta. Para solucionar este problema, cambie la condición para comparar el valor de la clave ‘name’ en el diccionario de usuario con el valor del parámetro de nombre de la siguiente manera:

    if user['name'] == name:
    

    Esto debería resolver el KeyError y devolver correctamente el usuario si se encuentra o el mensaje “usuario no encontrado” si no se encuentra.

Comments are closed.