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:
```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.1.2.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

dynamodb_json-1.1.2-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for dynamodb-json-1.1.2.tar.gz
Algorithm Hash digest
SHA256 5c612b36ab28c017b9f0b3a9eb87a53d3df64f7c80b7be2eda6c34fff138d537
MD5 bbb13718cfcc71c465135fc975a15d7f
BLAKE2b-256 f5f9e20068a0332b687d768d4a0a3116109544a60c70003c69ce39dcfdd7312e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dynamodb_json-1.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2a5799e2068d20ca984c930af076eb7cff86be8fb23c78ae08dd793f44019a1e
MD5 4703c5bd54ede901a8c7f42c7706cad0
BLAKE2b-256 86e7551f6d4a04cc9d4ab57b13c1ec384e51da1267a927cfbe88056707622c7b

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