<p>我很难理解为什么下面对DynamoDB表的查询不起作用:</p>
<pre><code>dict_table.query(KeyConditionExpression='norm = :cihan', ExpressionAttributeValues={':cihan': {'S': 'cihan'}})
</code></pre>
<p>并抛出此错误:</p>
<p><code>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</code></p>
<p>当以下操作有效时:</p>
<pre><code>dict_table.query(KeyConditionExpression=Key('norm').eq('cihan'))
</code></pre>
<p><code>norm</code>是一个字符串类型的字段。我用的是boto3 v 1.4.0和<a href="http://boto3.readthedocs.io/en/latest/reference/services/dynamodb.html#DynamoDB.Client.query" rel="nofollow">following the docs</a>:</p>
<pre><code>In [43]: boto3.__version__
Out[43]: '1.4.0'
</code></pre>
<p>有人知道第一个查询有什么错误吗?</p>
<p>附加问题:所有的代币是什么,需要随时更换它们?为什么我不能说<code>dict_table.query(KeyConditionExpression='norm = cihan')</code></p>