【发布时间】:2020-07-03 09:47:07
【问题描述】:
我已将 AWS Lambda 连接到 DynamoDB,并且没有任何连接问题。
每次更新数据库时都会运行 lambda Python 代码。但是我在response['Item'] 中遇到了一个关键错误。我已经阅读了文档,但都是一样的,我很困惑为什么会出现错误。几乎在每个网站上都有response['Item'],而且我的表也不是空的,它由那个项目组成。
专门针对浮点值而不是整数值的问题。
from decimal import Decimal
from boto3.dynamodb.conditions import Key
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('My table name')
def lambda_handler(event, context):
response = table.get_item(
Key = {
"Time": Decimal(4193082887.620961)
}
)
print(response['Item'])
而 lambda 控制台中出现的错误是
[ERROR] KeyError: 'Item'
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 26, in lambda_handler
print(response['Item'])
实际上我想要一个 python 程序,它可以为我提供表中的最新条目,但测试从获取项目开始。如果你能告诉我如何从 python 中的表中获取最新条目,那很好。我只是将我的数据从浮点值编辑为整数值,现在它完美地给了我时间的整数数据,但是当我我对浮点值做同样的事情,它给了我错误。它肯定会用浮点数和小数做一些事情。
【问题讨论】:
-
你的桌子是什么样子的?
-
它是一个普通的 dynamodb 表,有 3 个列。时间,纬度,经度
-
也连接到IOT核心规则。就是这样
-
如果该键不存在,则没有分区键为“Time”且值为“4193082887.620961”的项目。您是否在控制台中验证了某个项目具有此值?
-
是的,值在那里,即使不是,它也应该返回一个空值而不是错误。
标签: python amazon-web-services aws-lambda amazon-dynamodb keyerror