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)
Update version in nssjson/__init__.py at release time
Catch negative index parameter to the C scan_once() function, mimicking http://hg.python.org/cpython/rev/ef52ae167555
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)
Fork of simplejson 3.3.3
Add support for Python datetimes, dates and times (see https://github.com/simplejson/simplejson/issues/86 and https://github.com/simplejson/simplejson/pull/89)
Fix compatibility with Python 3.4 unittests