Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 1.49 KB

README.rst

File metadata and controls

50 lines (38 loc) · 1.49 KB

Simple UBJSON in Python

UBJSON is the universally compatible format specification for binary JSON. It's pretty and simple data format and simpleubjson aims to be also the same.

>>> import simpleubjson
>>> ubjdata = simpleubjson.encode({'hello': 'world', 'тест': [1, 2, 3]})
>>> ubjdata
b'{Si\x08\xd1\x82\xd0\xb5\xd1\x81\xd1\x82[i\x01i\x02i\x03]SU\x05helloSi\x05world}'

:func:`simpleubjson.encode` function transforms Python objects into UBJSON binary string data. To decode it back to Python objects use :func:`simpleubjson.decode` function:

>>> simpleubjson.decode(ubjdata)
{'hello': 'world', 'тест': [1, 2, 3]}

Moreover, you may also introspect UBJSON data via :func:`simpleubjson.pprint` function:

>>> simpleubjson.pprint(ubjdata)
[{]
    [S] [i] [5] [hello]
    [S] [i] [5] [world]
    [S] [i] [8] [тест]
    [[]
        [i] [1]
        [i] [2]
        [i] [3]
    []]
[}]

This representation is a bit more human friendly than traditional hexview and designed specially for UBJSON format.

Currently simpleubjson follows Draft-9 specification by default, but you may change specification version by passing spec="draft-N" argument for :func:`~simpleubjson.decode`, :func:`~simpleubjson.encode` and :func:`~simpleubjson.pprint` functions.