【问题标题】:Access json request from python in python AWS lambda function在 python AWS lambda 函数中访问来自 python 的 json 请求
【发布时间】:2020-11-28 07:25:00
【问题描述】:

我在 AWS API 网关中有一个 API,使用 lambda 代理集成连接到 python 中的 AWS Lambda 函数。在我的本地计算机上,我正在 python 中测试这个 API。我想向 api 发送字典,并让 api 返回字典中元素的函数。

我用来测试的python代码是:

import requests
import json

url = "https://p68yzl6gu6.execute-api.us-west-1.amazonaws.com/test/helloworld"

headers = {'data': [0,1]}

response = requests.post(url, json=headers)

print(response.text)

由于我无法通过 requests.post 的标头参数发送列表,我想我会使用 json。当我尝试这个时,我得到一个 {"message": "Internal server error"}。这是我的 AWS lambda 函数(python):

import json

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': event['data']
    }

查看日志,“数据”不是事件的关键。如何访问 AWS Lambda 函数中的列表?测试时如何找出事件字典的样子?展望未来,我想发送一个包含字典和列表的大字典。这是正确的做法吗?

【问题讨论】:

  • 尝试通过在 lambda_handler 方法中调用 event.keys() 来显示事件键,看看会弹出什么。
  • 我应该在哪里做呢?它在哪里说事件['数据']?如果我这样做并调用我的 python 函数,我仍然会收到一个内部服务器错误,这并没有真正的帮助..
  • 返回声明上方
  • 谢谢,如果我这样做,我将如何/在哪里看到该行的输出?

标签: python json aws-lambda python-requests aws-api-gateway


【解决方案1】:

试试

import json

def lambda_handler(event, context):
    body = json.loads(event['body'])
    return {
        'statusCode': 200,
        'body': json.dumps(body['data'])
    }

【讨论】:

  • 再试一次,我加了一个json.dumps @WilliamSteenbergen
  • @WilliamSteenbergen 再试一次
  • 是的,非常感谢! json.loads 做到了。
  • @WilliamSteenbergen 没有问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 2018-04-10
  • 2019-07-29
相关资源
最近更新 更多