Skip to main content

Canonical JSON

Project description

Latest Version https://img.shields.io/travis/matrix-org/python-canonicaljson.svg

Features

  • Encodes objects and arrays as RFC 7159 JSON.

  • Sorts object keys so that you get the same result each time.

  • Has no insignificant whitespace to make the output as small as possible.

  • Escapes only the characters that must be escaped, U+0000 to U+0019 / U+0022 / U+0056, to keep the output as small as possible.

  • Uses the shortest escape sequence for each escaped character.

  • Encodes the JSON as UTF-8.

  • Can encode frozendict immutable dictionaries.

Supports Python versions 3.5 and newer.

Installing

pip install canonicaljson

Using

To encode an object into the canonicaljson:

import canonicaljson
assert canonicaljson.encode_canonical_json({}) == b'{}'

There’s also an iterator version:

import canonicaljson
assert b''.join(canonicaljson.iterencode_canonical_json({})) == b'{}'

The underlying JSON implementation can be chosen with the following:

import json
import canonicaljson
canonicaljson.set_json_library(json)

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

canonicaljson-1.3.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

canonicaljson-1.3.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file canonicaljson-1.3.0.tar.gz.

File metadata

  • Download URL: canonicaljson-1.3.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.7

File hashes

Hashes for canonicaljson-1.3.0.tar.gz
Algorithm Hash digest
SHA256 b4763db06a2e8553293c5edaa4bda05605c3307179a7ddfb30273a24ac384b6c
MD5 2893aa2f6b18b5d7ed99db35e5b2d12c
BLAKE2b-256 49e512f34bc9678677c288b5653b153eaa926f72564d06106cd400166d771a30

See more details on using hashes here.

File details

Details for the file canonicaljson-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: canonicaljson-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.7

File hashes

Hashes for canonicaljson-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b3cae2027700ec43419c9a498a5185dbefbea5e16fdc52c605c086f5ab2e728
MD5 960fc63f3fb0c8385315da7de758305e
BLAKE2b-256 2f30725758ce0cbfffd12f6017e8efa227bab2a4d3b69119bd285ac6a679a2aa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page