Python 如何在dynamodb中使用boto3扫描过滤器

Python 如何在dynamodb中使用boto3扫描过滤器,python,amazon-dynamodb,boto3,Python,Amazon Dynamodb,Boto3,我正在尝试使用boto3测试dynamodb的样品过滤器。我的简单例子——写得几乎和这个例子一样——失败了。我使用的表“User”可以正确使用。scan: In [24]: list(User.scan()) Out[24]: [users_info-dev<giovanni>, users_info-dev<nicola>, users_info-dev<ping>] 错误是什么?执行此扫描的正确方法是什么 注意:我还没有真正了解扫描和查询之间的区别。“查

我正在尝试使用boto3测试dynamodb的样品过滤器。我的简单例子——写得几乎和这个例子一样——失败了。我使用的表“User”可以正确使用
。scan

In [24]: list(User.scan())
Out[24]: [users_info-dev<giovanni>, users_info-dev<nicola>, users_info-dev<ping>]
错误是什么?执行此扫描的正确方法是什么


注意:我还没有真正了解扫描和查询之间的区别。“查询”似乎应该用于筛选主键。对我来说,SQL db的背景听起来很奇怪…

我没有意识到我在pynamodb提供的表周围使用了一个wrappower。该表不是boto3提供的表,而是pynamodb提供的表,因此查询/扫描的语法(更简单):

User.scan(FilterExpression=Attr('user_id').eq('giovanni'))
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
...

ValueError: Attribute FilterExpression specified for filter does not exist.

from boto3.dynamodb.conditions import Key, Attr
User.scan(User.user_id == 'giovanni')