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
demandé il y a 2 mois310 vues
1 réponse
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)
répondu il y a 2 mois
profile picture
EXPERT
vérifié il y a 2 mois
  • 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

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions