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)
}
就目前而言,您只是在管理字符串。
调用代码
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)
}
就目前而言,您只是在管理字符串。