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 dyson json util works the same as json loads and dumps functions:
```python
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.0.6.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

dynamodb_json-1.0.6-py2.py3-none-any.whl (7.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dynamodb-json-1.0.6.tar.gz.

File metadata

File hashes

Hashes for dynamodb-json-1.0.6.tar.gz
Algorithm Hash digest
SHA256 4af3f59ce2f0c51ae9e182d9f995bf5faa380ea950aa71399e835d9cad4f7f9d
MD5 bddf1b95535ad76a3c05750c70037498
BLAKE2b-256 d503d2220a6241ca980730c502d7951986e00cda97d7e6e8659cfcc3a8e827b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dynamodb_json-1.0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1800e1b1a22eea084626895eccebdcf40436c3b8dfde79362b46b74c8253252e
MD5 d117c8d9044a488d45736c0510b3ff0a
BLAKE2b-256 85729c598a6494c33a5d312f441cc5fe3eaea9d80e6042ac0e159af9292aabd5

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