0
0
DynamodbHow-ToBeginner · 4 min read

How to Use DynamoDB with Python: Simple Guide and Example

To use DynamoDB with Python, install the boto3 library and create a client or resource to interact with your DynamoDB tables. Use methods like put_item to add data and get_item to retrieve data from your tables.
📐

Syntax

First, import boto3 and create a DynamoDB resource or client. Use Table to specify the table you want to work with. Common methods include put_item to add data, get_item to fetch data by key, and delete_item to remove data.

  • boto3.resource('dynamodb'): Creates a DynamoDB resource object.
  • table = dynamodb.Table('TableName'): Selects your table.
  • put_item(Item={...}): Adds an item (row) to the table.
  • get_item(Key={...}): Retrieves an item by its key.
python
import boto3

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')

# Add an item
response = table.put_item(Item={'PrimaryKey': '123', 'Attribute': 'Value'})

# Get an item
response = table.get_item(Key={'PrimaryKey': '123'})
item = response.get('Item')
💻

Example

This example shows how to create a DynamoDB resource, add an item to a table, and then retrieve it by its primary key.

python
import boto3

# Create DynamoDB resource

dynamodb = boto3.resource('dynamodb', region_name='us-west-2')

table = dynamodb.Table('Movies')

# Add a movie item
response_put = table.put_item(
    Item={
        'year': 2023,
        'title': 'Example Movie',
        'info': {'rating': 8.5, 'genres': ['Drama', 'Action']}
    }
)

print('PutItem succeeded:', response_put['ResponseMetadata']['HTTPStatusCode'])

# Get the movie item
response_get = table.get_item(
    Key={
        'year': 2023,
        'title': 'Example Movie'
    }
)

item = response_get.get('Item')
print('GetItem returned:', item)
Output
PutItem succeeded: 200 GetItem returned: {'year': 2023, 'title': 'Example Movie', 'info': {'rating': 8.5, 'genres': ['Drama', 'Action']}}
⚠️

Common Pitfalls

Common mistakes when using DynamoDB with Python include:

  • Not configuring AWS credentials properly, causing authentication errors.
  • Using incorrect primary key names or missing required keys in put_item or get_item.
  • Forgetting to specify the AWS region when creating the resource.
  • Assuming get_item always returns an item; it returns null if the key is not found.

Always check the response for the presence of the Item key before using it.

python
import boto3

dynamodb = boto3.resource('dynamodb', region_name='us-west-2')
table = dynamodb.Table('Movies')

# Wrong: Missing primary key in get_item
# response = table.get_item(Key={'title': 'Example Movie'})  # Missing 'year' key

# Right: Provide full primary key
response = table.get_item(Key={'year': 2023, 'title': 'Example Movie'})
item = response.get('Item')
if item:
    print('Item found:', item)
else:
    print('Item not found')
Output
Item found: {'year': 2023, 'title': 'Example Movie', 'info': {'rating': 8.5, 'genres': ['Drama', 'Action']}}
📊

Quick Reference

OperationMethodDescription
Create resourceboto3.resource('dynamodb')Create DynamoDB resource object
Select tabledynamodb.Table('TableName')Choose the table to work with
Add itemtable.put_item(Item={...})Insert or replace an item in the table
Get itemtable.get_item(Key={...})Retrieve an item by primary key
Delete itemtable.delete_item(Key={...})Remove an item by primary key

Key Takeaways

Install and import boto3 to interact with DynamoDB in Python.
Create a DynamoDB resource and specify your table before performing operations.
Use put_item to add data and get_item with full primary key to retrieve data.
Always check if get_item returns an item to avoid errors.
Configure AWS credentials and region correctly to avoid connection issues.