当前位置: 首页 > 知识库问答 >
问题:

Python-使用Boto3从DynamoDB检索最大主键值

常乐
2023-03-14

我只是尝试使用Boto3通过查询/扫描检索主键的最大值。我正试图实现这一点,这样我的程序就可以简单地增加一个变量,我将为下一个表条目将其设置为等于最大“ID”值1。

DynamoDB表格截图

response = table.scan(
    FilterExpression=Attr('ID'). #Here is where I'd assume a condition
)                                #is placed to find the highest value but
                                 #the Boto3 doc doesn't seem to have a 
                                 #method like 'max()' or something...

通过搜索,我找到了如何使用原始的“boto”来实现这一点,所以我确信有一种方法可以使用它的新版本“boto3”,但我还没有找到任何东西。

任何帮助/指导都将不胜感激!谢谢

Boto3文件:http://boto3.readthedocs.io/en/latest/guide/dynamodb.html#querying-和扫描

共有1个答案

谢昂雄
2023-03-14

我也有同样的问题,找不到一个优雅的解决方案。但是,如果主键只是整数,则可以执行以下操作来查找最大键:

import boto3

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
max_key = table.item_count
 类似资料:
  • 所以我使用DynamoDB来存储我的火花作业的状态。我已经创建了主键名为计划时间(分区键)和appName(范围键)和我的火花作业写作业完成后的状态。在我的火花作业完成后,另一个Python脚本计划检索作业的状态,并在失败时重新启动应用程序。有时,即使记录存在,我也不会在DynamoDB表中为一组特定的主键获取任何项目,当我使用用户界面时,我可以看到相应的记录。我使用boto3库table.get

  • 问题内容: 我有一个dynamodb表来存储电子邮件属性信息。我在电子邮件上有一个哈希键,在时间戳(数字)上有范围键。使用电子邮件作为哈希键的最初想法是按电子邮件查询所有电子邮件。但是我想做的一件事是检索所有电子邮件ID(在哈希键中)。我为此使用了boto,但不确定如何检索不同的电子邮件ID。 我当前提取10,000条电子邮件记录的代码是 但是要检索不同的记录,我将必须进行全表扫描,然后在代码中选

  • 我有一个dynamodb表,它的字符串主键名为,数字排序键名为。我想获取dynamodb表中年龄

  • 我在使用AWS Boto3使用推荐的KeyConditionExpression同时使用哈希键和范围键查询DynamoDB时遇到问题。我附上了一个查询示例: 当我对具有以下方案的表运行此操作时: 我发现以下错误,我无法理解原因: 根据我的理解,类型M是映射或字典类型,我使用的类型N是数字类型,与我的范围键表方案相匹配。如果有人能解释为什么会发生这个错误,或者我也愿意用不同的方式完成相同的查询,即使

  • 我试图从AWS Lambda函数更新DynamoDb表中的一项,但出现以下错误: “errorMessage”:“调用UpdateItem操作时发生错误(ValidationException):提供的键元素与架构不匹配”, 在定义我的表时,我没有定义排序键,我的分区键名为'pipeId',我使用了以下代码: 在没有预先设置排序键的情况下,无法获取或更新项?还是我做错了什么?

  • 我们正在使用boto3为我们的DynamoDB,我们需要做一个完整的扫描我们的表,以便能够做到这一点,基于其他帖子,我们需要做一个分页。但是,我们无法找到分页的工作示例。这是我们所做的。 我们不知道如何将esk作为下一个查询的ExclusiveStartKey。ExclusiveStartkey参数的预期值应该是多少?我们在DynamoDB还是新手,还有很多东西需要学习,包括这个。谢谢