【发布时间】:2017-01-14 06:53:51
【问题描述】:
如果 DynamoDB 查询中的所有结果跨越一页以上,我如何循环它们? This answer 暗示分页内置在查询函数中(至少在 v2 中),但是当我在 v3 中尝试此操作时,我的项目似乎有限:
import boto3
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb')
fooTable = dynamodb.Table('Foo')
response = fooTable.query(
KeyConditionExpression=Key('list_id').eq('123')
)
count = 0
for i in response['Items']:
count += 1
print count # Prints a subset of my total items
【问题讨论】:
-
应该可以。尝试
scan()整张桌子,以确保您确实应该获得更多物品。 -
谢谢@joarleymoraes,但我确实试过了,DynamoDB 控制台中的计数大约是 boto3 返回的 10 倍。
-
list_id 是字符串还是整数?也许你想检查一下。
-
有什么理由使用带有计数器的
for loop而不是print len(response['Items'])?顺便说一句,我和你有同样的问题。 -
@JoãoAbrantes 没有理由,这只是用于提问的示例代码:)
标签: python aws-lambda pagination amazon-dynamodb boto3