【发布时间】:2020-12-24 10:16:49
【问题描述】:
我正在构建一个 Web 应用程序,该应用程序将一些信息发送到 API(AWS 的 API 网关),它会接收回一个图像和有关该图像的一些信息(字符串)。字符串和图像由 python 编写的 lambda 函数(AWS 服务)生成。
阅读this 我使用base64 库将我的图像转换为Base64 编码并将其作为我的json 响应的一部分发送,但我得到Object of type bytes is not JSON serializable,我该如何解决这个问题?
question 的答案显示的代码与我的代码做的事情相同,但在该答案的 cmets 中它说代码有效,而我的无效,我做错了吗?
这是我的代码:
def f():
...
bio = BytesIO()
plt.savefig(bio, format="png")
bio.seek(0)
my_base64_jpgData = base64.b64encode(bio.read())
result["image"] = my_base64_jpgData
return result
def lambda_handler(event, context):
body = event["body"]
result = handler(body)
return {
'statusCode': 200,
'body': json.dumps(result)
}
如果我在本地对此进行测试,我可以避免执行 json.dumps() 并仅返回 result,但在 lambda 函数中尝试相同的代码会使其失败,因为(我认为)发送响应之前的 lambda 函数应用 json.dumps给它。
编辑: this question 的答案还说要做我所做的(使用 base64),但我不明白为什么它对我不起作用
【问题讨论】:
标签: python json amazon-web-services aws-lambda httpresponse