[英]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.