dynamodb-prettyparser

Parses dynamodb responses into a list dictionaries with attribute names as keys


License
Apache-2.0
Install
pip install dynamodb-prettyparser==1.0.1

Documentation

Dynamodb Pretty Parser

Parses Dynamodb responses into a more usable format. Results are returned as a list of dictionaries with the attribute names being the key. Results are parsed recursively. One use is to return results directly to Appsync from a Lambda function. Parses all scalar types that Dynamo supports

  • N (number scalar) - cast as integer or Decimal types
  • S (string scalar) - stays string
  • SS (string set scalar) - list of strings
  • NS (number set scalar) - list of Decimal/integer
  • L (list scalar) - list
  • BOOL (boolean scalar) - boolean
  • B (binary scalar) - string of base64
  • BS (binary set scalar) - list of base64 strings
  • NULL (null scalar) - None
  • M (map scalar) - Dictionary

Responses are returned formated as:

[
  {"attributeOneName": {"S": "value1"}, "attributeTwoName": {"S": "value2"}},
  {"attributeOneName": {"S": "value1"}, "attributeTwoName": {"S": "value2"}}
]

Becomes

[
  {"attributeOneName": "value1", "attributeTwoName": "value2"},
  {"attributeOneName": "value1", "attributeTwoName": "value2"}
]

Where each dictionary in the top level array is a separate item.

Methods

parseResults(records) -> dict Arguments: items -- Response from any boto3 call to Dynamodb that returns Items in the response

Example

from dynamodbPrettyParser import parseResults
import boto3

dynamodb = boto3.client('dynamodb')
response = dynamodb.query(
  TableName='mytable',
  KeyConditionExpression='my_attribute = :foo',
  ExpressionAttributeValues={':foo': 'bar'}
)

print(parseResults(response))