Pagination in Amazon DynamoDB using Boto(使用 Boto 在 Amazon DynamoDB 中进行分页)
问题描述
如何使用 Boto python 库对来自 DynamoDB 的结果进行分页?从 Boto API 文档中,我无法确定它是否支持分页,尽管 DynamoDB API 确实支持分页.
How do I paginate my results from DynamoDB using the Boto python library? From the Boto API documentation, I can't figure out if it even has support for pagination, although the DynamoDB API does have pagination support.
推荐答案
Boto 确实支持使用ExclusiveStartKey"和Limit"组合的分页"行为.例如,对 Scan
进行分页.
Boto does have support for "pagination" like behavior using a combination of "ExclusiveStartKey" and "Limit". For example, to paginate Scan
.
这是一个应该按 10 个块解析整个表的示例
Here is an example that should parse a whole table by chunks of 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()
正如@garnaat 所指出的,我可能误解了您的实际目标.上述建议允许您提供分页,例如 SO 对问题所做的那样.每页不超过 15 个.
As pointed out by @garnaat, it is possible that I misunderstood your actual goal. The above suggestion allows you to provide pagination like SO does for questions for example. No more than 15 per pages.
如果您只需要一种方法来加载由给定 Scan
生成的整个结果集,Boto 是一个很棒的库,并且已经为您抽象了它,而无需像我的回答中那样使用黑魔法.在这种情况下,您应该遵循他 (@garnaat) 的建议.顺便说一句,他是 Boto 的作者,因此是 Boto 相关问题的一个很好的参考:)
If you just need a way to load the whole result set produced by a given Scan
, Boto is a great library and already abstracts this for you with no need for black magic like in my answer. In this case, you should follow what he (@garnaat) advises. Btw, he is the author of Boto and, as such, a great reference for Boto related questions :)
这篇关于使用 Boto 在 Amazon DynamoDB 中进行分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Boto 在 Amazon DynamoDB 中进行分页
基础教程推荐
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 筛选NumPy数组 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01