Skip to main content

DynamoDB Json

DynamoDB json util to load and dump strings of Dynamodb json format to python object and vise-versa

Install

just use pip:

pip install dynamodb-json

Use

The dynamodb-json util works the same as json loads and dumps functions:

import time
import uuid
from datetime import datetime
from decimal import Decimal

from dynamodb_json import json_util as json

json_ = {"MyString": "a",
         "num": 4,
         "MyBool": False,
         "my_dict": {"my_date": datetime.utcnow()},
         "MyNone": None,
         "MyZero": 0,
         "myDecimal": Decimal("19.2"),  # converts Decimal to float, load it as float
         "myLong": long(1938475658493),
         "MyNestedDict": {
             "my_other_nested": {
                 "name": "John",
                 "surname": "Lennon",
                 "MyOtherNone": None,
                 "floaty": float(29.4),
                 "myList": [1, 3, 4, 5, 6, "This Is Sparta!"],
                 "mySet": {1, 3, 4, 5, 6},  # converts set to list, returns as list
                 "myUUID": uuid.uuid4(),  # converts uuid to string, loads it as string
                 "time": time.time()  # converts it to seconds python float, loads it as float
             }
         }
    }

dynamodb_json = json.dumps(json_)

# {
# "my_dict": {"M": {"my_date": {"S": "2017-04-22T14:41:35.780000"}}}, 
# "MyBool": {"BOOL": false}, "MyNone": {"NULL": true}, 
# "MyNestedDict": {
#   "M": {"my_other_nested": {
#       "M": {"myUUID": {"S": "2f4ad21e098f49b18e22ad209779048b"}, 
#             "surname": {"S": "Lennon"}, "name": {"S": "John"}, 
#             "mySet": {"L": [{"N": "1"}, {"N": "3"}, {"N": "4"}, {"N": "5"}, {"N": "6"}]}, 
#             "floaty": {"N": "29.4"}, "time": {"N": "1492872095.78"}, 
#             "myList": {"L": [{"N": "1"}, {"N": "3"}, {"N": "4"}, {"N": "5"}, {"N": "6"}, {"S": "This Is Sparta!"}]}, 
#             "MyOtherNone": {"NULL": true}}
#             }
#       }
#   }, 
# "myDecimal": {"N": "19.2"}, "num": {"N": "4"}, 
# "MyString": {"S": "a"}, 
# "myLong": {"N": "1938475658493"}, 
# "MyZero": {"N": "0"}
# }


json.loads(dynamodb_json)

# {'my_dict': {'my_date': datetime.datetime(2017, 4, 22, 14, 41, 35, 780000)}, 'MyBool': False, 'MyNone': None,
#  'MyNestedDict': {
#      'my_other_nested': {'myUUID': '2f4ad21e098f49b18e22ad209779048b', 
#                          'surname': 'Lennon', 'name': 'John',
#                          'mySet': [1, 3, 4, 5, 6], 
#                          'floaty': 29.4, 
#                          'time': 1492872095.78,
#                          'myList': [1, 3, 4, 5, 6, 'This Is Sparta!'], 
#                          'MyOtherNone': None
#                          }
#              }, 
#  'myDecimal': 19.2,
#  'num': 4, 
#  'MyString': 'a', 
#  'myLong': 1938475658493L, 
#  'MyZero': 0
# }

Release files for dynamodb-json 1.4.2

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

Source distribution (sdist)

Source distribution for dynamodb-json 1.4.2
File Size Uploaded
dynamodb_json-1.4.2.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dynamodb-json 1.4.2
File Interpreter ABI Platform
dynamodb_json-1.4.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 18.8 kB

Release files / dynamodb_json-1.4.2.tar.gz

Download URL dynamodb_json-1.4.2.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a304b4117877f3697af5554158e5034c3c48973a3ba49ecf49dddb09ac502b03
BLAKE2b-256 checksum
How to use checksums
6f657216f2111c4e47ffb44b6415334c221d5543ce2a85c8d80e155e7cb06851
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / dynamodb_json-1.4.2-py2.py3-none-any.whl

Download URL dynamodb_json-1.4.2-py2.py3-none-any.whl
Size 9.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
b78259bb13cf96695ab6554d6616341ace4e2530e24cedb738a01a7cef828309
BLAKE2b-256 checksum
How to use checksums
d2061b30b1e89ff8e86215e8e0fb1cbf3004976f5435b9dcafc3c1f7623e2a77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.4.2 This release

2 release files

1.3

2 release files

1.2

2 release files

1.1.2

2 release files

1.1

2 release files

1.0.6

2 release files

1.0.5

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