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
gefragt vor 2 Monaten310 Aufrufe
1 Antwort
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)
beantwortet vor 2 Monaten
profile picture
EXPERTE
überprüft vor 2 Monaten
  • 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

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen