Get value only when calling get_item in Lambda Python

0

I am successfully getting an item from DynamoDB in a Lambda Pyton with Boto3. However, I am getting attribute: value. not just the value. Is there a way to invoke get_tem to get just the value?

Python Code: import json import boto3

def lambda_handler(event, context): dynamodb = boto3.resource('dynamodb', region_name = 'us-east-1') table = dynamodb.Table('D12Sites')

response = table.get_item(
    Key={'SitesID': '1'},
    ProjectionExpression='D12Website',
    )
resp1 = response["Item"]
print(resp1)

#resp1 is: {'D12Website': 'http://site.live'} #Need just: 'http://site.live'

return {
    'statusCode': 200,
    'body': json.dumps(response["Item"]),
}

#{'D12Website': 'http://site.live'}

profile picture
Petrus
已提問 2 個月前檢視次數 305 次
1 個回答
4

Are you Expecting the value and ignore key(attribute)(Key: Value)?

Extract the value from the response

website_value = response.get("Item", {}).get("D12Website", None)

print(website_value)
已回答 2 個月前
profile picture
專家
已審閱 2 個月前
  • Just to be sure.....First, thanks. Second: this works on the variable response, not call the database table again. Correct?

  • Yes, The Response Variable Holds the result of the get_item operation which already retrieves the item from dynamodb table, so by extracting value from the response variable you are not making another call to database

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南