Kijewski / pyjson5

A JSON5 serializer and parser library for Python 3 written in Cython.
https://pyjson5.readthedocs.io
Apache License 2.0
143 stars 8 forks source link
cpython json json5 library python python3

PyJSON5

A JSON5 serializer and parser library for Python 3 written in Cython <http://cython.org/>_.

Serializer

The serializer returns ASCII data that can safely be used in an HTML template. Apostrophes, ampersands, greater-than, and less-then signs are encoded as unicode escaped sequences. E.g. this snippet is safe for any and all input:

.. code:: html

"<a onclick='alert(" + encode(data) + ")'>show message</a>"

Unless the input contains infinite or NaN values, the result will be valid JSON <https://tools.ietf.org/html/rfc8259>_ data.

Parser

All valid JSON5 1.0.0 <https://spec.json5.org/> and JSON <https://tools.ietf.org/html/rfc8259> data can be read, unless the nesting level is absurdly high.

Functions

You can find the full documentation online at https://pyjson5.readthedocs.io/en/latest/. Or simply call help(pyjson5). :-)

The library supplies load(s) and dump(s) functions, so you can use it as a drop-in replacement for Python's builtin json module, but you should use the functions encode_*() and decode_*() instead.

Compatibility

At least CPython 3.5 or a recent Pypy3 version is needed.