我不太明白为什么下面这个针对DynamoDB表的查询无法工作:
dict_table.query(KeyConditionExpression='norm = :cihan', ExpressionAttributeValues={':cihan': {'S': 'cihan'}})
并且抛出了以下错误:
ClientError: 调用查询操作时发生错误(ValidationException):一个或多个参数值无效:条件参数类型与模式类型不匹配
而以下内容是有效的:
dict_table.query(KeyConditionExpression=Key('norm').eq('cihan'))
norm
是一个字符串类型的字段。我正在使用版本为1.4.0的boto3,并且遵循文档:
In [43]: boto3.__version__
Out[43]: '1.4.0'
有人能看出第一个查询中的错误吗?
附加问题:为什么需要所有的令牌并且一直需要替换它们?我为什么不能只说dict_table.query(KeyConditionExpression='norm = cihan')
{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }
请参见http://boto3.readthedocs.io/en/latest/reference/services/dynamodb.html#DynamoDB.Client.query - tayfun