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
posta 2 mesi fa310 visualizzazioni
1 Risposta
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)
con risposta 2 mesi fa
profile picture
ESPERTO
verificato 2 mesi fa
  • 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

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande