繁体   English   中英

如何在python中的DynamoDB查询中使用限制数据?

[英]How to use with limit data in DynamoDB query in python?

我想按块从 DynamoDB 表中获取数据,每次 2 个值。 我没有找到 python 的示例代码,试图从 c# 翻译,但代码不起作用。 在向查询添加限制和 ExclusiveStartKey 之前,我从 AWS 获取了数据。 有人可以帮忙吗?

name & source是我提供的参数。

这是我的代码

    while True:
        lastKeyEvaluated = null;
        sourceTable = dynamodb.Table (source)
        response = sourceTable.query (
            IndexName="Name-index",
            KeyConditionExpression=Key ('Name').eq (name),
            Limit = 1,
            ExclusiveStartKey = lastKeyEvaluated,
        )
        lastKeyEvaluated = response['LastEvaluatedKey'];
        print ("get data passed sucssesfully")
        print (response)
        if lastKeyEvaluated == null and lastKeyEvaluated.Count is 0:
            break
        return response

正如您在问题中所说,当您添加“lastKeyEvaluated”时,您的代码可能停止工作。

首先,在 Python 中,您不使用分号来结束语句,这是一个问题。 另一个问题是您使用空值声明“lastKeyEvaluated”变量。 Python 使用 None 而不是 null。

最后,如果您查看有关 boto3 的文档,您将看到 ExclusiveStartKey 接受字典作为值,因此会引发另一个错误。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Client.query

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM