Python AWS Lambda 的事件主体返回字符串而不是我的 json 对象

Python AWS Lambda's event body returning string instead of my json object

调用代码

import requests
import json
# Create a new resource
data_object = {'key1':'testing'}
response = requests.post('https://fakeurl.execute-api.us-east-1.amazonaws.com/default/My_Test_Event_Lambda', data=data_object)

print(response._content.decode())

Lambda 代码

import json

def lambda_handler(event, context):

    return {
                'statusCode': 200,
                'body': json.dumps(event['body'])
            }

我从调用中得到的响应是 "key1=testing" 我不太关心响应,但我希望 lambda 函数能够处理我作为 json 而不是字符串传递的数据。示例:我希望能够说 event['body']['key1'] 并让它 return "testing"

目前 API 个网关被用作 lambda 代理。

您收到的event['body']是一个字符串。您需要将 JSON 中的内容解析为字典:

d = json.loads(event['body'])

然后您可以 return 如果需要,您可以通过以下方式 return 在您的回复中作为正文:

return {
    'statusCode': 200,
    'body': json.dumps(d)
}

就目前而言,您只是在管理字符串。