Not So Simple JSON encoder/decoder
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
- Optionally serialize/deserialize UUIDs
- Avoid broken JSON output for int/long/float subclasses reimplementing the __str__() and/or __repr__() methods
- Fix memory leak when an error occurs encoding dict items
- Overhaul of load() and dump() signatures
- Drop Sphinx documentation
- Complete the fix against negative index parameter to raw_decode()
- Fix C encoder initialization
- Catch invalid item_sort_key argument to C encoder
- 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
- 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
- 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
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.