Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x AWS Lambda在访问事件时与代理集成的Lambda格式不正确_Python 3.x_Amazon Web Services_Aws Lambda - Fatal编程技术网

Python 3.x AWS Lambda在访问事件时与代理集成的Lambda格式不正确

Python 3.x AWS Lambda在访问事件时与代理集成的Lambda格式不正确,python-3.x,amazon-web-services,aws-lambda,Python 3.x,Amazon Web Services,Aws Lambda,当前问题:仅在访问事件数据时出现格式错误的Lambda异常 当我访问该事件时,API网关返回一个内部服务器错误。 我想做的一个简化用例是访问POST请求中给定给Lambda的键的值,使用代理集成,因此不需要模板映射 import json def lambda_handler(event, context): items = {} items["hello"] = "name" itemsarray = [] for key, value in event.items

当前问题:仅在访问事件数据时出现格式错误的Lambda异常

当我访问该事件时,API网关返回一个内部服务器错误。 我想做的一个简化用例是访问POST请求中给定给Lambda的键的值,使用代理集成,因此不需要模板映射

import json

def lambda_handler(event, context):
   items = {}
   items["hello"] = "name"

   itemsarray = []
   for key, value in event.items() :
       itemsarray.append(key + ":" + value)

   return {
       'statusCode': 200,
       'isBase64Encoded': False,
       'body' : json.dumps(items),
       'headers': {
            'content-type': 'application/json'
        }
   };
来自API网关的错误消息,Lambda本身不返回代码错误

JSON Post数据

{dummy:hello,data:world}


回答我自己的问题,在未来几年里为某人省下几个小时的痛苦。我很想做NVM,明白了。不管走哪条路,你都可以

事件主体返回一个字符串

data=json.loadsevent['body']

现在是与它互动的时候了。如果我们有一个JSON结构,比如

{
"someVar": "out",
  "data": {
    "message": "another out"
  }
}
数据['data']

会给我们回个信息:另一个出去了

注 在lambda编译器联机中。它给出了以下错误,但一旦通过postman或API网关之类的东西与它交互,它就可以正常工作。它似乎给了我一个假阴性,让我很长一段时间都不舒服

'body': KeyError
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line N, in lambda_handler
    var= json.loads(event['body'])
KeyError: 'body'

现在为我浪费的时间喝杯啤酒,谢天谢地堆栈溢出是一件事

我不明白你是怎么解决的。事实上,我也有同样的错误。如果我在apigateway中以{foo:bar}的形式传递json。我应该如何在python中访问它?这样地?foo=json.loadsevent[body][foo]@external_atomOh nvm。知道了!谢谢你,伙计!
'body': KeyError
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line N, in lambda_handler
    var= json.loads(event['body'])
KeyError: 'body'