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

Sit*_*ruc 6 aws-lambda aws-api-gateway

调用代码

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())
Run Code Online (Sandbox Code Playgroud)

拉姆达代码

import json

def lambda_handler(event, context):

    return {
                'statusCode': 200,
                'body': json.dumps(event['body'])
            }
Run Code Online (Sandbox Code Playgroud)

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

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

jar*_*mod 11

event['body']收到的是一个字符串。您需要使用以下命令将其从 JSON 解析为字典:

d = json.loads(event['body'])
Run Code Online (Sandbox Code Playgroud)

然后,如果需要,您可以通过以下方式返回该字典作为响应的正文:

return {
    'statusCode': 200,
    'body': json.dumps(d)
}
Run Code Online (Sandbox Code Playgroud)

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