【问题标题】:AWS Python Lambda Function JSON formatAWS Python Lambda 函数 JSON 格式
【发布时间】:2020-03-01 00:53:43
【问题描述】:

我在 AWs Lambda 中使用以下 Python 函数:

import json
import boto3
from boto3.dynamodb.conditions import Key, Attr

#always start with the lambda_handler
def lambda_handler(event, context):

    # make the connection to dynamodb
    dynamodb = boto3.resource('dynamodb')

    # select the table
    table = dynamodb.Table("test")

    response = table.query(
    KeyConditionExpression=Key('coursename').eq('intro')
    )
    data = response['Items']
    return {'body' : data}

它输出以下 JSON - 注意到“body”键了吗?当我尝试在我的应用中使用响应时,这会产生一些问题,因为我必须将“正文”作为响应的一部分。

来自 Lambda 的 JSON 响应

{
    "body": [{
        "coursename": "introto1",
        "course-lesson-name": "Welcome to One! "
    }, {
        "coursename": "introto2",
        "course-lesson-name": "What is One?"
    }, {
        "coursename": "introto2",
        "course-lesson-name": "What Can We do with One?"
    }]
}

这是我需要 Python 函数输出的 JSON 格式。这可以在 AWS Lambda 中完成吗?

我需要的JSON格式:

[{
    "coursename": "introto1",
    "course-lesson-name": "Welcome to One! "
}, {
    "coursename": "introto2",
    "course-lesson-name": "What is One?"
}, {
    "coursename": "introto2",
    "course-lesson-name": "What Can We do with One?"
}]

【问题讨论】:

  • 如果将return {'body' : data} 更改为return data 会发生什么?
  • 当——就这么简单,对吧?我觉得有点愚蠢,但谢谢 - 它就像一个魅力。

标签: python json aws-lambda


【解决方案1】:

响应采用该格式,因为您将其显式包装在具有 body 属性的 JSON 对象中。将return {'body' : data} 更改为return data。

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    相关资源
    最近更新 更多