Universal Python serializer
Project description
d_serialize
===========
Universal converter of all things Python to a dict
. So it can be serialized
to JSON
.
Install
pip install d-serialize
Usage:
from d_serialize import d_serialize
from objects import SomeObject
some_object = SomeObject()
json_values = d_serialize(some_object)
Usage in Flask
from d_serialize import d_serialize
from flask import jsonify
from objects import SomeObject
@app.route('/a_route')
def a_route():
some_object = SomeObject()
json_values = d_serialize(some_object)
return jsonify(json_values)
d_serialize will enumerate all public properties of your object, set, list or dict
and convert them
to a JSON allowable type. IE:
list, dictionary, string, float, integer or boolean.
Any property that is not one of these types will be converted to a string
. Enumerables: set
and tuple
will be converted to list
.
Dictionary, set, tuple and list properties will be followed to ensure all child objects and
values are also converted.
Methods and private properties (starting with _
) are not enumerated.
Any property or attribute that raises an exception will be excluded or
have a None
value.
Complex objects that refer to themselves will have their str value as the
recursive value instead of the entire complex value.
Example:
Converting a Class instance.
from d_serialize import d_serialize
class TestObject:
number_value = 1
float_value = 1.1
def dont_call_me(self):
"""return self.number_value"""
print(d_serialize(TestObject()))
# dict(number_value=1, float_value=1.1)
Release History
===============
-
1.0.0 First version of this wondrous package.
-
1.0.1 Check for None when serializing and return None rather than 'None'. Exceptions on getattr return None for value.
-
1.0.2 Crummy circular reference test. Convert top level list, set, tuple.
-
1.0.3 Fix deploy workflow
-
1.0.4 Allow for readonly objects
-
1.0.6 Improve recursion check and value
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
Built Distribution
File details
Details for the file d-serialize-1.0.6.tar.gz
.
File metadata
- Download URL: d-serialize-1.0.6.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 754bbeca981fa9dc8d59186869ad73d1baba0773951970b0740a785ce5fe80da |
|
MD5 | 9f52399dd142963937b4d113ce31fbdd |
|
BLAKE2b-256 | 7110fbd34511fe578305ca7750d8bfe5965671c4c10914ed6bc10ffb8855cc50 |
File details
Details for the file d_serialize-1.0.6-py2.py3-none-any.whl
.
File metadata
- Download URL: d_serialize-1.0.6-py2.py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d56ee056ec2555b5a41ae2f0becfe648cff83f70a9c17d07a6d493a4888be822 |
|
MD5 | 40de9d93460863308e518e4769fd9c68 |
|
BLAKE2b-256 | ea70401aa42f3ac674698aed9493c45313b18a7d72cf86bfe9742ada47f0453c |