Skip to main content

A DynamoDB json util from and to python objects

Project description

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
# }

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

dynamodb_json-1.4.2.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

dynamodb_json-1.4.2-py2.py3-none-any.whl (9.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dynamodb_json-1.4.2.tar.gz.

File metadata

  • Download URL: dynamodb_json-1.4.2.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for dynamodb_json-1.4.2.tar.gz
Algorithm Hash digest
SHA256 a304b4117877f3697af5554158e5034c3c48973a3ba49ecf49dddb09ac502b03
MD5 6b57cd54b8abcad3b14b8b23ec3bd3bf
BLAKE2b-256 6f657216f2111c4e47ffb44b6415334c221d5543ce2a85c8d80e155e7cb06851

See more details on using hashes here.

File details

Details for the file dynamodb_json-1.4.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dynamodb_json-1.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b78259bb13cf96695ab6554d6616341ace4e2530e24cedb738a01a7cef828309
MD5 f229c92328677c76182f1406bd8a8361
BLAKE2b-256 d2061b30b1e89ff8e86215e8e0fb1cbf3004976f5435b9dcafc3c1f7623e2a77

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