2016-07-15 93 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