.. image:: https://img.shields.io/pypi/v/canonicaljson.svg :target: https://pypi.python.org/pypi/canonicaljson/ :alt: Latest Version
RFC 7159
_ JSON.Supports Python versions 3.7 and newer.
.. _RFC 7159
: https://tools.ietf.org/html/rfc7159
.. code:: bash
pip install canonicaljson
To encode an object into the canonicaljson:
.. code:: python
import canonicaljson
assert canonicaljson.encode_canonical_json({}) == b'{}'
There's also an iterator version:
.. code:: python
import canonicaljson
assert b''.join(canonicaljson.iterencode_canonical_json({})) == b'{}'
A preserialisation hook allows you to encode objects which aren't encodable by the
standard library JSONEncoder
.
.. code:: python
import canonicaljson
from typing import Dict
class CustomType:
pass
def callback(c: CustomType) -> Dict[str, str]:
return {"Hello": "world!"}
canonicaljson.register_preserialisation_callback(CustomType, callback)
assert canonicaljson.encode_canonical_json(CustomType()) == b'{"Hello":"world!"}'