boto3 DDB сканирование с использованием ScanFilter? - PullRequest
0 голосов
/ 14 ноября 2018

Это правильный способ сравнения равенства для строковых атрибутов в операции сканирования DDB. Он не извлекает необходимые данные из моей таблицы, однако работает, когда ScanFilter не используется, и возвращает все записи. (Обратите внимание, что модель и имя являются именами полей столбцов и хранят строковые значения). Я новичок в этом и извиняюсь, если мне не хватает чего-то глупого.

Я знаю, что мы можем использовать FilterExpression, но мой вариант использования лучше всего подходит при использовании ScanFilter.

db_client = boto3.resource('dynamodb')
scan_filter = {'model': {'ComparisonOperator': 'EQ', 'AttributeValueList': [{'S': '<some_model_val>'}]}, 'name': {'ComparisonOperator': 'EQ', 'AttributeValueList': [{'S': 'some_name_val'}]}}
table = db_client.Table("<table_name>")
response = table.scan(
    Select='ALL_ATTRIBUTES',
    ScanFilter=scan_filter
)
print response
...