Initial commit
This commit is contained in:
37
utilities.py
Normal file
37
utilities.py
Normal file
@@ -0,0 +1,37 @@
|
||||
def unmarshal_dynamodb_json(node):
|
||||
data = dict({})
|
||||
data['M'] = node
|
||||
return _unmarshal_value(data)
|
||||
|
||||
|
||||
def _unmarshal_value(node):
|
||||
if type(node) is not dict:
|
||||
return node
|
||||
|
||||
for key, value in node.items():
|
||||
key = key.lower()
|
||||
if key == 'bool':
|
||||
return value
|
||||
if key == 'null':
|
||||
return None
|
||||
if key == 's':
|
||||
return value
|
||||
if key == 'n':
|
||||
if '.' in str(value):
|
||||
return float(value)
|
||||
return int(value)
|
||||
if key in ['m', 'l']:
|
||||
if key == 'm':
|
||||
data = {}
|
||||
for key1, value1 in value.items():
|
||||
if key1.lower() == 'l':
|
||||
data = [_unmarshal_value(n) for n in value1]
|
||||
else:
|
||||
if type(value1) is not dict:
|
||||
return _unmarshal_value(value)
|
||||
data[key1] = _unmarshal_value(value1)
|
||||
return data
|
||||
data = []
|
||||
for item in value:
|
||||
data.append(_unmarshal_value(item))
|
||||
return data
|
||||
Reference in New Issue
Block a user