使用Boto在Amazon DynamoDB中进行分页

ana*_*rex 7 python boto amazon-dynamodb

如何使用Boto python库对DynamoDB的结果进行分页?从Boto API文档中,我无法弄清楚它是否支持分页,尽管DynamoDB API确实具有分页支持.

yad*_*taf 8

使用"ExclusiveStartKey"和"Limit"的组合,Boto确实支持"分页"行为.例如,分页Scan.

这是一个应该用10块块解析整个表的示例

esk = None

while True:
    # load this batch
    scan_generator = MyTable.scan(max_results=10, exclusive_start_key=esk)

    # do something usefull
    for item in scan_generator:
        pass  # do something usefull
    # are we done yet ?
    else:
        break;

    # Load the last keys
    esk = scan_generator.kwargs['exclusive_start_key'].values()
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@garnaat指出的那样,我可能误解了你的实际目标.上面的建议允许你提供像SO那样的问题分页.每页不超过15个.

如果你只是需要一种方法来加载由给定产生的整个结果集Scan,那么Boto是一个很棒的库,并且已经为你提取了这个,而不需要像我的答案那样需要黑魔法.在这种情况下,你应该遵循他(@garnaat)的建议.顺便说一句,他是Boto的作者,因此,对Boto相关问题的一个很好的参考:)