Module that serializes Python objects into JSON
Project description
Using the Module
Converting to a Python dict object
To convert a Python object to a Python dict (Dictionary) object, you use the convert_to_data function.
Usage
convert_to_data(obj, _reached=None)
Arguments
| Argument | Type | Description | Default Value |
|---|---|---|---|
| obj | Any | The object to convert to a Python dict object |
required |
| _reached | Set | A value passed to the function internally for recursive data structures | None |
Example
>>> class A:
... def __init__(self, obj):
... self.obj = obj
...
>>> obj1 = A('Hello World!')
>>> data = convert_to_data(obj1)
>>> data
{'version': 1, 'min_version': 1, 'module': '__main__', 'type': 'A', 'attrs': {'obj': {'value': 'Hello World!', 'uuid': 192575949315149374534195982055635280394, 'mode': 'fallback'}}, 'uuid': 192575949235921212021180267458779800074}
Converting back to a normal Python object
To convert a Python mapping back into a normal Python object, you use the convert_to_obj function.
Usage
convert_to_obj(data, allow_mode_repr=True, _reached=None)
Arguments
| Argument | Type | Description | Default Value |
|---|---|---|---|
| data | Mapping | The mapping to convert back to a Python object (a dict is a mapping) |
required |
| allow_mode_repr | bool | Whether to enable MODE_REPR; you might want to have this enabled because the deserialization function of MODE_REPR uses eval which is insecure |
True |
| _reached | Set | A value passed to the function internally for recursive data structures | None |
Example
>>> data = {'version': 1, 'min_version': 1, 'module': '__main__', 'type': 'A', 'attrs': {'obj': {'value': 'Hello World!', 'uuid': 192575949315149374534195982055635280394, 'mode': 'fallback'}}, 'uuid': 192575949235921212021180267458779800074}
>>> obj2 = convert_to_obj(data)
>>> obj2
<__main__.A at 0x2473cbb88e0>
Storing and Reading JSON
To store and read JSON-serialized objects, you use the dump, dumps, load, and loads functions.
dump and dumps
Serializes obj and passes *jargs and **jkwargs to json.dump and json.dumps respectively.
load and loads
Deserializes the JSON data from json.dump or json.dumps. It passes *jargs and **jkwargs to json.dump and json.dumps respectively.
Modifying how the serializer serializes specific types
To modify how the serializer serializes specific types you use the type_settings descriptor.
Usage
@type_settings(serialization_mode=MODE_YES, serialization_function=None, deserialization_function=None)
Arguments
| Argument | Type | Description | Default Value |
|---|---|---|---|
| serialization_mode | any of the MODE_* constants | The method used to serialize (and possibly deserialize the type) | MODE_YES |
| serialization_function | Union[None, Callable[[object, Set], JsonSupported]] | The function to serialize with (for MODE_FUNCTION); or None for others |
None |
| deserialization_function | Union[None, Callable[[JsonSupported, bool, Set], object]] | The function to serialize with (for MODE_FUNCTION); or None for others |
None |
Modes
MODE_YES
serialize the type
MODE_NO
don't serialize the type, always deserializes as None
MODE_FALLBACK
fallback to the JSON module types, the types can be found at https://docs.python.org/3/library/json.html#json.JSONDecoder
MODE_REPR
serializes with repr(obj), deserializes with eval(data)
MODE_FUNCTION
uses serialization_function to serialize, and deserialization_function to deserialize
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file JSON Serialize-1.0.2.tar.gz.
File metadata
- Download URL: JSON Serialize-1.0.2.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc206e1645a9f2afd55481b8b318d0f36219c90063402c953e9a6cfc92a7a83b
|
|
| MD5 |
4595ffc9d2a78dab02b004f7ad13b29b
|
|
| BLAKE2b-256 |
84bac55e64b4d430473e9ea364e93fc66c7211b0c54775154d2dce4606cac738
|
File details
Details for the file JSON_Serialize-1.0.2-py3-none-any.whl.
File metadata
- Download URL: JSON_Serialize-1.0.2-py3-none-any.whl
- Upload date:
- Size: 17.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e49c21e926e0919efb6f2fb7402f7419e01f88f46c2bd9dfa07812e8b882fc0
|
|
| MD5 |
ab8645d64d68bf354e129a47204fcec0
|
|
| BLAKE2b-256 |
2b8f464b0564672b5919a621fe54c6dae49d328421976165480205e291a3861c
|