Amazon dynamodb DynamoDB boto3:如何查询键是否有值

Amazon dynamodb DynamoDB boto3:如何查询键是否有值,amazon-dynamodb,boto3,dynamodb-queries,Amazon Dynamodb,Boto3,Dynamodb Queries,我正在编写python代码来查询dynamo DB上的表。除了其他条件外,我还希望获得存在我指定的键的某些值的行 KeyConditionExpression = Key('Status').eq('Done') & Key('Name').begins_with('A') & Key('Error').exists() 在上面的代码中,我想显示列“Error”有一些值的行,不管它是什么。 但最后一个条件是抛出一个错误。 AttributeError:“键”对象没有属性“存在”

我正在编写python代码来查询dynamo DB上的表。除了其他条件外,我还希望获得存在我指定的键的某些值的行

KeyConditionExpression = Key('Status').eq('Done') & Key('Name').begins_with('A') & Key('Error').exists()
在上面的代码中,我想显示列“Error”有一些值的行,不管它是什么。 但最后一个条件是抛出一个错误。 AttributeError:“键”对象没有属性“存在”


如何修改代码以合并第三个查询?

假设“错误”键既不是分区键也不是排序键,因为必须始终将分区键名称和值指定为相等条件。此外,对于排序键,您可以使用下面提到的比较运算符之一

  • a=b—如果属性a等于值b,则为true

  • a=b-如果a大于或等于b,则为真

  • a介于b和c之间-如果a大于或等于b且小于或等于c,则为真。

  • 以(a,substr)开始\u-如果属性a的值以特定子字符串开始,则为true。

现在回到您的问题,如果您使用的是Query操作,那么您肯定可以使用QueryFilter来检查键“Error”是否存在一些非空值。官方文档将QueryFilter定义为:

在查询操作中,QueryFilter是一种条件,用于在读取项后评估查询结果,并仅返回所需的值

以下比较运算符可用于QueryFilter

等式| NE | LE | LT | GE | GT |非空|空|包含|非|包含|以|中间|开始

请参阅下面提到的链接,了解有关QueryFilter和FilterExpression的更多信息

AWS官方文档链接: