Skip to main content

ddbcereal

A high performance Python library for serializing and deserializing DynamoDB attribute values.

Serializers and deserializers created with ddbcereal work with the input and output of AWS SDKs like botocore, aiobotocore, and the low-level client interfaces of boto3 and aioboto3.

This library endeavors to be at least as fast as boto3's (de)serializer and has the option to work with inexact numbers like floats.

Documentation

Usage

Create a Serializer for getting data into the native DynamoDB format:

  • serializer.serialize(value) to serialize individual values
  • serializer.serialize_item(mapping) to serialize an entire dict of values.

Create Deserializer for getting native DynamoDB data into native Python values:

  • deserializer.deserialize(value) to deserialize individual values
  • deserializer.deserialize_item(mapping) for complete items from the AWS SDK

Example

import aiobotocore
import ddbcereal

serializer = ddbcereal.Serializer()
deserializer = ddbcereal.Deserializer()

aws = aiobotocore.Session()

async with aws.create_client('dynamodb') as ddb:
    # Serialize entire dict as a DynamoDB item
    await ddb.put_item(
        TableName='MyItems',
        Item=serializer.serialize_item(my_dict)
    )

    # Serialize single values
    await ddb.update_item(
        TableName='Customers',
        Key={'id': serializer.serialize(customer_id)},
        UpdateExpression='SET displayName = :name, licenses = :licenses',
        ExpressionAttributeValues={
            ':name': serializer.serialize('ACME, Inc.'),
            ':licenses': serializer.serialize(20)
        }
    )

    # Deserializing:
    response = await ddb.query(
            TableName='Companies',
            KeyConditionExpression='id = :id',
            ExpressionAttributeValues={
                ':id': serializer.serialize(customer_id)
            }
        )
    companies = [
        deserializer.deserialize_item(item)
        for item in response.get('Items', ())
    ]

Metadata

Release files for ddbcereal 2.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ddbcereal 2.1.1
File Size Uploaded
ddbcereal-2.1.1.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ddbcereal 2.1.1
File Interpreter ABI Platform
ddbcereal-2.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 23.9 kB

Release files / ddbcereal-2.1.1.tar.gz

Download URL ddbcereal-2.1.1.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a6119eccfe43fb42720420c6d387bc7b4c00f07c8d584933da460ce8502ba2cc
BLAKE2b-256 checksum
How to use checksums
697f87d7ae0fbef703aa3952dec4144e8ff89cfd623bae0e37a3f2dd1ef19430
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.4

Release files / ddbcereal-2.1.1-py3-none-any.whl

Download URL ddbcereal-2.1.1-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f9777845c6867460d89d765656dbf7f4c8d88772cbb3ad65a2647c077875833
BLAKE2b-256 checksum
How to use checksums
fd4c53ffea4cdef0d6a51601a7b845e8e1a7f9f8fba43f12180394c12a9bb5e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.4

Release history Release notifications | RSS feed

This release

2.1.1 This release

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page