Make any type JSON-serializable
Project description
Make any type JSON-serializable.
A Python module which makes json.dumps work with several builtin and stdlib types. A hook for registering any custom type is also provided.
Installing
Simply install alljson with pip or add it to your project dependencies:
pip install alljson
Supported types
After installing, the following types are JSON-serializable:
generators
set and frozenset
dict item/key/value iterators and views
datetime.date and datetime.datetime (as strings in ISO format)
uuid.UUID
decimal.Decimal (serialized as string in order to preserve precision)
reversed results
In addition to these, the following Python 3 types are supported:
map, filter, range iterators
enum.Enum
pathlib.Path
types.MappingProxyType
classes implementing Sequence and Mapping abc interfaces
Registering custom types
In order to register a new type, use alljson.register_encoder(type, encoder_function). encoder_function should take object of given type as the only parameter and return a simple JSON-serializable Python value (such as dict or str).
For example:
import arrow import alljson alljson.register_encoder(arrow.Arrow, arrow.Arrow.isoformat)
Acknowledgements
pth trick was stolen from delightful future-fstrings project
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
File details
Details for the file alljson-0.2.tar.gz
.
File metadata
- Download URL: alljson-0.2.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 322b0082fab940ebabd4e12c7e306b69efb5a9bd14dafeff7f003cfe74e1ff41 |
|
MD5 | 02b238156e7fffa6527210bbc9d916be |
|
BLAKE2b-256 | 6f6966224725e118de3d69e402dc813f39e74b4aa81c227cdfad948a3f800206 |
File details
Details for the file alljson-0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: alljson-0.2-py2.py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ae81e7d8a61ba574b4e335553f88126df52c405244f000df8e4ebfcc148c18 |
|
MD5 | fb6b792f1430da85574d6161b82ad6f4 |
|
BLAKE2b-256 | 60b5b49809b7e0e357d28f47393427808ff364b42e119d0d53510943b5b19850 |