AWS Lambda的字典问题-Python

时间:2018-09-25 19:18:16

标签: python python-3.x aws-lambda

我正在使用Python 3.6开发一个AWS lambda函数,并且面临着一个奇怪的情况。

在本地,使用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 :(得分:2)

感谢 @ g.d.d.c 评论,我可以找到答案。

问题在于API Gateway引号包装事件的 body 值。

因此,我必须首先将其解析为 dict

正确的代码:

def handler(event, context):
    logger.info("###EVENT " + str(event))
    data = event.get('body')
    data = json.loads(data)