我在python中有以下字符串:
object SemiGroupImplicitTypes {
implicit object IntSemiGroup extends SemiGroupNumber[Int]
implicit object LongSemiGroup extends SemiGroupNumber[Long]
implicit object DoubleSemiGroup extends SemiGroupNumber[Double]
implicit object FloatSemiGroup extends SemiGroupNumber[Float]
implicit def listSemiGroup[T]: Semigroup[List[T]] = new SemiGroupList[T]
}
并且我正在尝试使用fe = "Attr('COLOR').eq('RED')"
查询dynamoDB表,这就是我所说的:
FilterExpression
但是我得到了:
response = table.query(KeyConditionExpression=Key('key').eq(key),
FilterExpression=fe
)
是否可以将字符串作为参数进行An error occurred (ValidationException) when calling the Query operation: Invalid FilterExpression: Syntax error; token: "'", near: "('COLOR"
查询?它需要作为字符串输入,因为它由字典提供。我试过剥离引号,例如:
FilterExpression
但是它没有用。关于下一步我可以尝试的任何想法?谢谢!
答案 0 :(得分:1)
我认为您不能为FilterExpression
传递字符串,但是可以使用eval()
获得想要的Python表达式。
fe = "Attr('COLOR').eq('RED')"
key = 'myKey'
response = table.query(KeyConditionExpression=Key('key').eq(key),
FilterExpression=eval(fe))
当然,在使用eval()
时,您需要真的信任您的输入。