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

如何在Lambda函数事件字典中精确匹配指定字符串键?

解决Lambda事件体键检查误匹配问题

问题原因

你的代码中'test-report' in event['body']的判断逻辑有误:如果event['body']是API Gateway触发Lambda时默认的JSON格式字符串,in操作会检查字符串中是否包含子串,自然会匹配到original-policy值里的test-reports,而非仅检查字典的第一层键。

解决方案

先将JSON格式的body字符串解析为Python字典,再直接检查键是否存在:

import json

def lambda_handler(event, context):
    # 先尝试解析body为字典
    try:
        body_dict = json.loads(event['body'])
    except json.JSONDecodeError:
        # 解析失败时直接返回或跳过后续操作
        return {
            'statusCode': 400,
            'body': json.dumps('Invalid request body')
        }
    
    # 仅检查字典第一层键是否存在
    if 'test-report' in body_dict:
        try:
            # 执行你的业务逻辑
            pass
        except Exception as e:
            # 异常处理逻辑
            print(f"Error occurred: {e}")
    
    return {
        'statusCode': 200,
        'body': json.dumps('Process completed')
    }

关键说明

  • 字典的in操作默认会仅检查键是否存在,不会匹配值中的内容,这正是你需要的逻辑。
  • 必须先处理JSON解析的异常,避免因非法格式的body导致函数报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:55:21