Словарь проблема с AWS лямбда - Python - PullRequest
0 голосов
/ 25 сентября 2018

Я разрабатываю лямбда-функцию AWS с Python 3.6 и сталкиваюсь со странным сценарием.

Локально, вызывая функцию с python-lambda-local все работает нормально.

В AWS фрагмент коданиже возникает исключение:

def handler(event, context):
    data = event['body']
    logger.info("###DATAAAAA BODY " + str(data))
    origem = data.get('origem','')

Ошибка:

AttributeError: у объекта 'str' нет атрибута 'get'

Кажется, что локально объект data является dict .Но в AWS это str .

1 Ответ

0 голосов
/ 26 сентября 2018

Благодаря комментарию @ gddc я смог найти ответ.

Проблема в том, что API Gateway обернуло body значение события с цитата .

Так что я должен сначала разобрать его на dict .

Правильный код:

def handler(event, context):
    logger.info("###EVENT " + str(event))
    data = event.get('body')
    data = json.loads(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...