AWS DynamoDB ExclusiveStartKey значение по умолчанию - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь сделать запрос к DynamoDB, и если возвращается LastEvaluatedKey (что означает, что запрос превышает 1 МБ), я хочу сделать другие запросы, чтобы извлечь все необходимые данные из таблицы, используя LastEvaluatedKey как ExclusiveStartKey для следующего запроса. Вот код, который у меня есть сейчас:

query_response = table.query(
    KeyConditionExpression=Key('brand').eq(brand)
)

pagination_key = None

if 'LastEvaluatedKey' in query_response:
    pagination_key = query_response['LastEvaluatedKey']

    while pagination_key:
        next_query_response = table.query(
            KeyConditionExpression=Key('brand').eq(brand),
            ExclusiveStartKey=pagination_key
        )

Однако я хотел бы изменить этот код, извлекая запрос в метод, передавая ему pagination_key в качестве аргумента. Чтобы сделать это, я должен был бы иметь возможность установить ExclusiveStartKey на False, None или другое значение по умолчанию для первого вызова, но я ничего не нашел по этому поводу, или мне пришлось бы быть в состоянии полностью исключить ExclusiveStartKey, но я тоже не знаю, как это сделать.

1 Ответ

0 голосов
/ 07 декабря 2018

Я нашел простой способ построения параметров:

query_params = { 'KeyConditionExpression': Key('brand').eq(brand) }

if pagination_key:
    query_params['ExclusiveStartKey'] = pagination_key

query_response = table.query(query_params)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...