首页 > 解决方案 > 返回 python 字符串作为 HTTP 响应的主体

问题描述

我正在AWS Lambda使用python-2.7回复AWS Api Gateway。我的 lambda 函数应该返回如下所示的响应,但我正在努力将正确形式的正文放入 JSON 响应中:

    return_value = {
        "statusCode": 200,
        "isBase64Encoded": 'false',
        "headers": {"Content-Type": "application/json"},
        "body": {payload['note']}
    }

的类型payload['note']unicode,所以我不知道在 对面的括号中到底要放什么body,因为我是 python 新手并且尝试了很多但无法弄清楚。我尝试使用以下方法将其转换为字符串:

unicodedata.normalize('NFKD', payload['note']).encode('ascii', 'ignore')

但它也没有奏效。

标签: pythonjsonamazon-web-serviceshttpresponseaws-api-gateway

解决方案


首先,我认为之前将 unicode 字符串转换为 python 字符串是一个好主意,因为我不知道您的其余代码是否可以处理 json 中的 unicode。

我认为您的问题与 json 格式有关。作为 JSON,body 字段应该包含键值对。

尝试:

return_value = {
    "statusCode": 200,
    "isBase64Encoded": 'false',
    "headers": {"Content-Type": "application/json"},
    "body": {"note": payload['note']}
}

推荐阅读