Skip to main content

AWS DynamoDB utility for parsing DynamoDB responses

Project description

Grid Smarter Cities

Build Status License: MIT PyPI

AWS DynamoDB Parser

AWS DynamoDB utility for parsing DynamoDB responses

Installation

pip install aws-dynamodb-parser

Package Contents

parse

parse is the main method exposed for parsing DynamoDB responses when using boto3.

The parse function can handle all of the data types AWS DynamoDB supports as of October 2020.

Examples

Assuming we have a table TABLE_NAME containing the following entries, with id set as the partition key and timestamp as the sort key.

All three fields included are strings.

id timestamp name
a77b5fc0-75cb-408c-bebf-863873506cce 2020-10-01 13:13:47.388492 First test entry
a77b5fc0-75cb-408c-bebf-863873506cce 2020-10-01 13:15:25.376589 Second test entry
fa853ff0-706e-45db-b6ae-aa6a8a1f7856 2020-10-01 13:16:47.720778 Third test entry

Parsing the result from a get_item request:

import boto3
from aws_dynamodb_parser import parse

dynamodb_client = boto3.client("dynamodb")
response = dynamodb_client.get_item(
    TableName="TABLE_NAME",
    Key={
        "id": {"S": "a77b5fc0-75cb-408c-bebf-863873506cce"},
        "timestamp": {"S": "2020-10-01 13:13:47.388492"}
    }
)

item = response.get("Item", {})
print(item)
# {'id': {'S': 'a77b5fc0-75cb-408c-bebf-863873506cce'}, 'timestamp': {'S': '2020-10-01 13:13:47.388492'}, 'name': {'S': 'First test entry'}}

entry = parse(item)
print(entry)
# {'id': 'a77b5fc0-75cb-408c-bebf-863873506cce', 'timestamp': '2020-10-01 13:13:47.388492', 'name': 'First test entry'}

Parsing the result from a query request:

import boto3
from aws_dynamodb_parser import parse

dynamodb_client = boto3.client("dynamodb")
response = dynamodb_client.query(
    TableName="TABLE_NAME",
    KeyConditionExpression="#id = :id",
    ExpressionAttributeNames={
        "#id": "id"
    },
    ExpressionAttributeValues={
        ":id": {"S": "a77b5fc0-75cb-408c-bebf-863873506cce"}
    }
)

items = response.get("Items", [])
print(items)
# [{'id': {'S': 'a77b5fc0-75cb-408c-bebf-863873506cce'}, 'timestamp': {'S': '2020-10-01 13:13:47.388492'}, 'name': {'S': 'First test entry'}}, {'id': {'S': 'a77b5fc0-75cb-408c-bebf-863873506cce'}, 'timestamp': {'S': '2020-10-01 13:15:25.376589'}, 'name': {'S': 'Second test entry'}}]

entries = parse(items)
print(entries)
# [{'id': 'a77b5fc0-75cb-408c-bebf-863873506cce', 'timestamp': '2020-10-01 13:13:47.388492, 'name': 'First test entry'}, {'id': 'a77b5fc0-75cb-408c-bebf-863873506cce', 'timestamp': '2020-10-01 13:15:25.376589', 'name': 'Second test entry'}]

Documentation

Users can get the docstring help by running:

from aws_dynamodb_parser import parse
help(parse)

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-dynamodb-parser-0.1.3.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

aws_dynamodb_parser-0.1.3-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file aws-dynamodb-parser-0.1.3.tar.gz.

File metadata

  • Download URL: aws-dynamodb-parser-0.1.3.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for aws-dynamodb-parser-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2ffad705b19aded75db42cb023a8b9944c5beb5217100a3053e3d192467f1327
MD5 16dda5b109040c4f200d4bec44fba060
BLAKE2b-256 77fbc5218dca5ed917b5fb789537cd80abb587d33dae78b1cc997cde1477a809

See more details on using hashes here.

File details

Details for the file aws_dynamodb_parser-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: aws_dynamodb_parser-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for aws_dynamodb_parser-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 19720dc8fcfd6a1bc49d407fccaaf9581f03be948bd370724fc4b051efa6702d
MD5 26594475585cd6cb671f395b8e9eb5cd
BLAKE2b-256 4bd4d4348310d24c18e696ddbfaaf1f50dc2801017320c977c1f5076e14811cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page