gpt4 book ai didi

python - 无服务器框架Python lambda直接返回JSON

转载 作者:行者123 更新时间:2023-12-01 00:21:24 26 4
gpt4 key购买 nike

我试图找出如何使用无服务器框架直接以 JSON 形式返回响应。这是 AWS 上具有 Lambda 代理集成的功能。全部默认设置。目标是从 python lambda 函数中,HTTP 响应客户端直接获取的是 JSON 对象,而不是 JSON 的字符串序列化。

Python 处理程序就像这个一样简单

    def handle(event, context):
log.info("Hello Wold")
log.info(json.dumps(event, indent=2))
return {
"statusCode": 200,
"body": {"foo": "bar"},
"headers": {
"Content-Type": "application/json"
}
}

该函数如下所示:

    functions:
report:
handler: handler.handle
events:
- http:
path: api/mypath
method: post
authorizer: aws_iam

通过这些配置,我在 Postman 中得到的响应 BODY 是:

    {
"statusCode": 200,
"body": {
"foo": "bar"
},
"headers": {
"Content-Type": "application/json"
}
}

所以这很奇怪,为什么我把所有东西都当作 body ?如何正确配置它以便我只获得“真实”主体?

最佳答案

方法#1

使用 json.dumps() 将 JSON 转换为字符串。

import json
def handle(event, context):
log.info("Hello Wold")
log.info(json.dumps(event, indent=2))
return {
"statusCode": 200,
"body": json.dumps({"foo": "bar"}),
"headers": {
"Content-Type": "application/json"
}
}

方法#2

使用 lambda 集成并避免 json.dumps()。但这会将您的输出转换为

{ foo = bar}

关于python - 无服务器框架Python lambda直接返回JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58929018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com