如果我运行此查询:
data = table.query(KeyConditionExpression = Key('id').eq('fasfas'),
FilterExpression=Attr(u'Absolute humidity[g/kg].3').eq(1))
我收到错误:
ClientError: An error occurred (ValidationException) when calling the Query operation: Invalid FilterExpression: Syntax error; token: "humidity", near: "Absolute humidity ["
但是,如果我使用他们的网站运行查询,它的工作原理。如何使用boto3使其工作?
P.S。它也不适用于下划线。
答案 0 :(得分:2)
表达式属性名称是您在表达式中使用的占位符,作为实际属性名称的替代。
[...]
如果属性名称以数字开头或包含空格,特殊字符或保留字,则必须使用表达式属性名称替换表达式中该属性的名称。
另见http://boto3.readthedocs.io/en/latest/reference/services/dynamodb.html#DynamoDB.Client.query
答案 1 :(得分:0)
您的某个参数与数据类型不匹配或缺少必需参数,例如范围和散列键。
如果您要查找与查询匹配的任何记录,则需要扫描而不是查询。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html
ValidationException消息:根据具体情况而变化 遇到错误
由于多种原因(例如必需参数)可能会发生此错误 缺少的值,超出范围的值或不匹配的数据类型。 错误消息包含有关特定部分的详细信息 导致错误的请求。
可以重试吗?否
希望它有所帮助。