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

如何构造带转义反斜杠的JSON以调用AWS Lambda

解决boto3调用Lambda时的Payload格式问题
  • 问题核心:你的Lambda期望body字段值是JSON字符串(而非JSON对象),所以需要对原始数据做两次JSON序列化:

    1. 先把内层的body对象序列化为JSON字符串
    2. 再把包含这个字符串的外层结构序列化为最终的JSON
  • 具体代码实现:

    import json
    
    # 原始数据
    original_data = {
        "body": {
            "searchText": "3350961-STXML",
            "published": True
        }
    }
    
    # 第一步:将内层body对象转为JSON字符串
    original_data["body"] = json.dumps(original_data["body"])
    
    # 第二步:将整个结构转为最终的JSON字符串(Lambda可直接识别)
    final_payload = json.dumps(original_data)
    
  • 验证结果:
    执行后final_payload的值为:

    '{"body":"{\\"searchText\\":\\"3350961-STXML\\",\\"published\\":true}"}'
    

和你手动测试可用的格式完全一致。

  • 为什么之前的方法出错?
    • 仅做一次json.dumps:会把body作为JSON对象直接序列化,无法生成嵌套的转义字符串
    • 手动替换反斜杠:容易出现转义次数错误,而两次序列化是Python JSON库自动处理转义,不会出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:14:55