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

2024-04-23 07:38:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从DynamoDB表中逐块获取数据,每次2个值。 我没有找到python的示例代码,尝试从c#进行翻译,但代码不起作用。 在我将limit和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

Tags: 数据代码nameaws示例responsedynamodbnull
1条回答
网友
1楼 · 发布于 2024-04-23 07:38:41

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

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

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

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

相关问题 更多 >