繁体   English   中英

在DynamoDB中将带有保留字的ProjectionExpression与Boto3结合使用

[英]Using a ProjectionExpression with reserved words with Boto3 in DynamoDB

我正在使用boto3从DynamoDB数据库中选择数据

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
response = table.scan(ProjectionExpression='Id,Name')['Items']

工作正常。 现在,我还想检索一个(不幸的)使用保留字命名的属性-假设是CONNECTION

response = table.scan(ProjectionExpression='Id,Name,Connection')['Items']

我收到类似的错误

调用扫描操作时发生错误(ValidationException):无效的ProjectionExpression:属性名称是保留的关键字; 保留的关键字:连接

我知道是否有使用过滤器或查询的别名技术,但这是否存在于来自boto3的简单投影中?

事实证明,这与直接调用DynamoDB API时一样容易解决。

我们应该为任何保留字使用别名,然后使用ExpressionAttributeName参数/属性提供从别名到'true'名称的映射。

response = table.scan(ProjectionExpression = 'Id, Name, #c',
                      ExpressionAttributeNames = {'#c': 'Connection'})['Items']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM