我正在使用DynamoDB从boto3数据库中选择数据
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的简单投影,存在这种技术吗?
发布于 2018-10-25 19:08:41
结果发现,这与直接调用DynamoDB API时一样容易解决。
对于任何保留字,我们都应该使用别名,然后用ExpressionAttributeName参数/属性提供从别名返回到“真”名称的映射。
response = table.scan(ProjectionExpression = 'Id, Name, #c',
ExpressionAttributeNames = {'#c': 'Connection'})['Items']https://stackoverflow.com/questions/52994822
复制相似问题