2016-07-15 92 views
0

我们使用boto3作为我们的DynamoDB,我们需要对表格进行全面扫描,以便基于其他帖子来完成我们需要做的分页。但是,我们无法找到分页的工作样本。这是我们所做的。DynamoDB分页使用Boto3

import boto3 
client_setting = boto3.client('dynamodb', region_name='ap-southeast-2') 
paginator = client_setting.get_paginator('scan') 
esk = {} 
data = [] 
unconverted_ga = ourQuery(params1, params2) 
    for page in unconverted_ga: 
     data.append(page) 
     esk = page['LastEvaluatedKey'] 

我们不知道如何将esk作为我们下一个查询的ExclusiveStartKey。 ExclusiveStartkey参数的期望值应该是多少?我们在DynamoDB中仍然是新手,我们需要学习很多东西,包括这些。谢谢!

回答

0

你可以用下面的代码试试:

esk = None 

while True: 
    scan_generator = YourTableName.scan(max_results=10, exclusive_start_key=esk) 
    for item in scan_generator: 
     //your code for processing 
    //condition to check if entire table is scanned 
    else: 
     break; 

    # Load the last keys 
    esk = scan_generator.kwargs['exclusive_start_key'].values() 

这里是参考文档link.

希望帮助

+0

感谢您的建议,但我已经找到了更好的解决方案。 – vnpnlz

+0

@vnpnlz,那么什么是“更好的解决方案”? –

+0

@BruceEdge我已经接受了我自己的答案,因为这是做分页的正确方法。请参阅链接。 – vnpnlz