Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

Not So Simple JSON encoder/decoder

Project description

nssjson is a (not so) simple, fast, complete, correct and extensible JSON encoder and decoder for Python 2.5+ and Python 3.3+. It is pure Python code with no dependencies, but includes an optional C extension for a serious speed boost.

nssjson is a fork of simplejson that fulfills my need of having a good performance JSON encoder/decoder able to handle also Python’s datetime and UUID, even if with an admittedly non-standard and faulty heuristic that was not considered within the scope of the original product.

Practically, the difference is that, out of the box, you have:

>>> import datetime, uuid
>>> import nssjson
>>> now = datetime.datetime.now()
>>> uid = uuid.uuid1()
>>> nssjson.loads(
...     nssjson.dumps([uid, now], iso_datetime=True, handle_uuid=True),
...     iso_datetime=True, handle_uuid=True) == [uid, now]
True

Changes

0.7 (2015-08-07)

  • Optionally serialize/deserialize UUIDs

0.6 (2015-05-31)

  • Avoid broken JSON output for int/long/float subclasses reimplementing the __str__() and/or __repr__() methods

0.5 (2014-12-21)

  • Fix memory leak when an error occurs encoding dict items

  • Overhaul of load() and dump() signatures

  • Drop Sphinx documentation

0.4 (2014-06-28)

  • Complete the fix against negative index parameter to raw_decode()

  • Fix C encoder initialization

  • Catch invalid item_sort_key argument to C encoder

0.3 (2014-04-16)

0.2 (2014-03-22)

  • Remove dead code noticed by Anatoly Techtonik

  • Use an interned instance of the UTC timezone instead of passing it as an argument to function/constructors

0.1 (2014-03-19)

Supported by

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