【发布时间】:2019-10-13 03:49:45
【问题描述】:
boto3 和 dynamodb 分页器的文档指定在分页时应返回 NextToken,然后您将在下一个查询中包含该令牌,以让 StartingToken 恢复分页会话(通过 RESTful API 访问信息时会发生这种情况)。
但是,我的测试表明它不会在结果中返回 NextToken,而是返回 LastEvaluatedKey。我在想我可以使用 LastEvaluatedKey 作为令牌,但这不起作用?
paginator = client.get_paginator('scan')
page_iterator = paginator.paginate(TableName='test1', PaginationConfig={'PageSize': 1 , 'MaxItems': 5000, 'MaxSize': 1 })
for page in page_iterator:
print(page)
break
我希望从 page_iterator 返回的页面对象包含 NextToken Key 但它没有?
{'Items': [{'PK': {'S': '99'}, 'SK': {'S': '99'}, 'data': {'S': 'Test Item 99'}}], 'Count': 1, 'ScannedCount': 1, 'LastEvaluatedKey': {'PK': {'S': '99'}, 'SK': {'S': '99'}}, 'ResponseMetadata': {'RequestId': 'DUE559L8KVKVH8H7G0G2JH0LUNVV4KQNSO5AEMVJF66Q9ASUAAJG', 'HTTPStatusCode': 200, 'HTTPHeaders': {'server': 'Server', 'date': 'Mon, 27 May 2019 14:22:09 GMT', 'content-type': 'application/x-amz-json-1.0', 'content-length': '153', 'connection': 'keep-alive', 'x-amzn-requestid': 'DUE559L8KVKVH8H7G0G2JH0LUNVV4KQNSO5AEMVJF66Q9ASUAAJG', 'x-amz-crc32': '3759060959'}, 'RetryAttempts': 0}}
我错过了什么?
更新:不知何故与此有关? How to use Boto3 pagination
【问题讨论】:
-
当你让 page_iterator 遍历页面时为什么需要令牌?
-
因为我将此页数据返回给 HTTP API 客户端。我还需要返回该令牌,以便他们可以返回并在后续请求中获取下一页。
标签: pagination amazon-dynamodb boto3