You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Flask开发中访问字典name键触发KeyError无法解决

问题原因及修复方案

核心问题1:字典键名拼写错误

你定义users数组时的用户字典键名多写了冒号,实际键是"name:"而非你预期的"name",所以访问user['name']必然触发KeyError。
错误代码片段:

users = [
    {"name:": "bitley", # 键名多了冒号
     "age": 5000,
     "items": [
         {"name:": "toyota"}, # 此处也存在同样的冒号冗余问题
         {"name": "camry"}
     ]
    }
]

核心问题2:条件判断逻辑错误

你写的if user['name'] == 'name':是把用户的name值和固定字符串'name'做对比,不是和路由传入的name参数对比,就算键名正确也无法匹配到目标用户。

其他隐性错误

  1. 匹配到用户后你返回了全部users数组,而非符合条件的单个用户
  2. 404返回的字典存在语法错误:键名多了冒号、字符串拼接缺少逗号,原代码{"message: " "user not found.."}实际会被解析为{"message: user not found.."},不符合字典规范

修复后完整代码

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 a user by name
@app.route('/users/<string:name>')
def get_user_by_name(name):
     # 检查用户是否存在
    for user in users:
        if user['name'] == name:
           return json.jsonify(user)
    return json.jsonify({"message": "user not found.."})

内容的提问来源于stack exchange,提问作者KhzEn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:24:03