python - 有没有办法将我的 AWS Lambda 函数响应更改为 JSON 格式?
问题描述
我正在尝试将我的 Lambda 函数的格式更改为 Json,以便我的 Javascript 可以在 .Json 中读取它,但是我似乎找不到任何关于如何做到这一点的信息,而不会对我的函数造成任何问题。我的 Lambda 函数工作正常,它完美地连接到我的 API 网关,唯一的问题是 Json。有人对我需要做什么有任何猜测吗?
这是我尝试时收到的错误。
{
"errorMessage": "Object of type set is not JSON serializable",
"errorType": "TypeError",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 18, in lambda_handler\n return json.dumps({int(response[\"Attributes\"][\"visits\"][\"N\"])})\n",
" File \"/var/lang/lib/python3.8/json/__init__.py\", line 231, in dumps\n return _default_encoder.encode(obj)\n",
" File \"/var/lang/lib/python3.8/json/encoder.py\", line 199, in encode\n chunks = self.iterencode(o, _one_shot=True)\n",
" File \"/var/lang/lib/python3.8/json/encoder.py\", line 257, in iterencode\n return _iterencode(o, 0)\n",
" File \"/var/lang/lib/python3.8/json/encoder.py\", line 179, in default\n raise TypeError(f'Object of type {o.__class__.__name__} '\n"
]
}
Python代码:
import boto3
import json
def lambda_handler(event, context):
dynamodb = boto3.client('dynamodb')
response = dynamodb.update_item (
TableName='resumecount',
Key= {
'url':{'S': "lewispeterson.com"}
},
UpdateExpression = 'SET visits = visits + :inc',
ExpressionAttributeValues = {
':inc': {'N': '1'}
},
ReturnValues="UPDATED_NEW"
)
print("UPDATING ITEM")
return json.dumps({int(response["Attributes"]["visits"]["N"])})
{
"statusCode": 200,
"body": "\"192\""
}
解决方案
推荐阅读
- python - 如何找到库 RAE 的文档或示例?
- python - 有没有办法写一段python代码来查看网页上是否存在一系列单词
- c++ - 函数模板的显式模板特化不起作用
- tensorflow - 如何在 tensorflow.js 中获取/设置监督模型的权重?
- python - python中的文本数据预处理
- ios - 重置 AVPlayer 和 ARImageTracking
- ionic4 - 当我在设备中测试时关闭离子菜单的问题
- javascript - 从多级嵌套对象数组中创建嵌套 JSX 元素 reactjs
- html - Html 5选择列表选项在chrome中悬停时更改背景颜色
- apache-spark - Rdd 到数据框 - 我在数据框表中使用“”获取输出,例如“2012-10-10”,但我需要的输出没有“”,例如 2012-10-10