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



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

CCD_ 1&CCD_ 2是我提供的参数。

这是我的代码

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";具有null值的变量。Python使用None而不是null。

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

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

最新更新