簡體   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