gpt4 book ai didi

python - lambda Python : How to check if get_item returned a value

转载 作者:行者123 更新时间:2023-12-04 09:33:14 24 4
gpt4 key购买 nike

我对 AWS Serverless 非常陌生,并已选择将 Python 用于我的 Lambda 处理程序
当我使用 API Gateway 查询 DynamoDB 以获取表中的项目时,如果它不存在,则会引发此错误。如果该项目不存在,我只是想让它返回 NOTHING。这是错误:

{
"errorMessage": "'Item'",
"errorType": "KeyError",
"stackTrace": [" File \"/var/task/lambda_function.py\", line 11, in lambda_handler\n json_body = response['Item']\n"]
}
我已经搜索了高低,试图在 DynamoDB 响应中找到告诉我没有项目的属性,然后我可以根据它编写一个 If 语句。
这是我的 Lambda 代码:
import json
import boto3

def lambda_handler(event, context):
client = boto3.resource("dynamodb")
table = client.Table("pnr-snapshot")
pnrID = event['pnrID']

response = table.get_item(Key={'pnrID': pnrID})
json_body = response['Item']
return json_body
我想也许在代码中添加一个 try 会有所帮助,但我得到了这个语法错误:

{"errorMessage":"Syntax error in module 'lambda_function': unexpected EOF while parsing (lambda_function.py, line 12)","errorType":"Runtime.UserCodeSyntaxError","stackTrace":[" File "/var/task/lambda_function.py" Line 12\n \t\treturn json_body\n"]}

import json
import boto3

def lambda_handler(event, context):
client = boto3.resource("dynamodb")
table = client.Table("pnr-snapshot")
pnrID = event['pnrID']

try:
response = table.get_item(Key={'pnrID': pnrID})
json_body = response['Item']
return json_body
我真的很感激任何帮助...

最佳答案

无法对 key 是否存在进行以下检查?

import json
import boto3

def lambda_handler(event, context):
client = boto3.resource("dynamodb")
table = client.Table("pnr-snapshot")
pnrID = event['pnrID']

response = table.get_item(Key={'pnrID': pnrID})
if 'Item' in response:
json_body = response['Item']
return json_body
else:
return ''

关于python - lambda Python : How to check if get_item returned a value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62729284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com