我很难理解为什么下面对dynamodb表的查询不起作用:

dict_table.query(KeyConditionExpression='norm = :cihan', ExpressionAttributeValues={':cihan': {'S': 'cihan'}})

并抛出此错误:
ClientError: An error occurred (ValidationException) when calling the Query operation: One or more parameter values were invalid: Condition parameter type does not match schema type
当以下操作有效时:
dict_table.query(KeyConditionExpression=Key('norm').eq('cihan'))

norm是一个字符串类型的字段。我用的是Boto3 V 1.4.0和following the docs
In [43]: boto3.__version__
Out[43]: '1.4.0'

有人知道第一个查询有什么错误吗?
附加问题:所有的代币是什么,需要随时更换它们?为什么我不能说dict_table.query(KeyConditionExpression='norm = cihan')

最佳答案

请更改表达式属性值,如下所述。

ExpressionAttributeValues={':cihan': 'cihan'}

08-27 14:43