фильтр сканирования boto3 Dynamodb между эпохами datetime в демикалах - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь запросить временную метку атрибута в десятичном формате эпохи. Цель состоит в том, чтобы отфильтровать все элементы, которые существуют за день.

У меня есть запрос ниже, и я также попробовал предложение between, но оба дали мне пустой результат.

from boto3.dynamodb.conditions import Attr
from datetime import datetime
from decimal import Decimal

start = datetime(2020, 5, 25).strftime('%s')
end = datetime(2020, 5, 26).strftime('%s')
response = table.scan(
            FilterExpression = \
                Attr('timestamp').gte(Decimal(start)) & \
                Attr('timestamp').lt(Decimal(end))
            )
print(response)

Однако я обнаружил, что простое использование gte (больше) ИЛИ lt (меньше) по отдельности возвращает правильный ответ, что вызывает недоумение, почему они не могут работать вместе. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 27 мая 2020

Поменять местами значения даты начала и окончания, поскольку начало должно быть старше в соответствии с вашим запросом сканирования

start = datetime(2020, 5, 25).strftime('%s')
end = datetime(2020, 5, 26).strftime('%s')
...