使用KeyConditionExpression的boto3查询

2024-06-28 20:30:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解为什么下面对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')


Tags: theannormparametertype错误tableboto3
2条回答

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

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

在当前版本的boto3(1.9.128)中,所问问题中提到的查询工作正常,除此之外,其他任何问题都不工作,下面提到的查询对我有效:

dynamo_client.query( KeyConditionExpression='campaign_id = :201906', ExpressionAttributeValues={':201906': {'S': '201906'}} )

相关问题 更多 >