AWS Python Лямбда-функция JSON формат - PullRequest
0 голосов
/ 01 марта 2020

Я использую следующую Python функцию в AWs Lambda:

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»? Это создает некоторые проблемы, когда я пытаюсь использовать ответ в своем приложении, потому что я должен ссылаться на «тело» как часть ответа.

JSON ответ от Lambda

{
    "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?"
    }]
}

Это формат JSON, для вывода которого мне нужна функция Python. Можно ли это сделать в AWS лямбде?

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?"
}]

1 Ответ

2 голосов
/ 01 марта 2020

Ответ в этом формате, потому что вы явно заключаете его в объект JSON со свойством body. Измените return {'body' : data} на return data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...