AWS Lambda Python代码报'queryStringParameters' KeyError问题排查
AWS Lambda KeyError报错修复方案
报错原因
KeyError: 'queryStringParameters' 是因为代码直接强制读取event对象中不存在的queryStringParameters字段触发的,触发场景有两种:
- Lambda控制台测试时使用的默认测试模板未配置
queryStringParameters字段,该字段只有API Gateway触发Lambda时才会默认携带 - 即便是API Gateway触发的请求,如果请求未携带任何查询参数,AWS会将
queryStringParameters设为null而非空字典,直接访问键也会抛出异常
解决方案
- 代码层面新增安全取值逻辑,避免直接嵌套读取字典键,参考写法:
# 写法1:链式调用get设置默认值,适合非必填参数 query_params = event.get("queryStringParameters") or {} Salary_or_wages = query_params.get("salary/wages", 0) # 后面的值可自定义默认值 # 写法2:异常捕获,适合必填参数校验 try: Salary_or_wages = event["queryStringParameters"]["salary/wages"] except (KeyError, TypeError): return { "statusCode": 400, "body": "缺少必填查询参数salary/wages" }
- 若在Lambda控制台做测试,需要手动调整测试事件结构,补充对应字段:
{ "queryStringParameters": { "salary/wages": "你要测试的参数值" } // 其他测试所需的事件字段保留即可 }
内容的提问来源于stack exchange,提问作者Bunny
相关产品推荐
相关产品推荐

