Error: dynamodb number_value cannot be converted to string

Rafal Wilinski

Answered by Rafal Wilinski

What's Causing This Error

This error message indicates an issue with the data type of an attribute in the item being stored or retrieved in DynamoDB. Specifically, it suggests that a number data type (such as an int or float) is being passed as an attribute value, but the attribute expects a string data type.

Solution: Here's How To Resolve It

To solve this error, check the data types of the item's attributes to ensure that they match the table's schema. For example, ensure that the attribute expecting a string data type is passed a string value.

You can convert the number value to a string before putting the item in the table.

import boto3

# Instantiate a client
dynamodb = boto3.client('dynamodb', region_name='us-west-2')

# Define the parameters
table_name = "my_table"
item = {
  'primary_key': {'S': '12345'},
  'number_value': {'S': str(number_value)}

# Perform the operation
dynamodb.put_item(TableName=table_name, Item=item)

Finally, check that the IAM user or role used to call the function has the necessary permissions to operate on the DynamoDB service.

Tired of switching accounts and regions? Use Dynobase.

Start your 7-day free trial today

Product Features

Member Portal
© 2024 Dynobase
Login to the AWS Console less.
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.