Encoding and decoding Python data structrues using portable JData-annotated formats
Project description
JData for Python - a lightweight and portable data annotation method
- Copyright: (C) Qianqian Fang (2019) <q.fang at neu.edu>
- License: Apache License, Version 2.0
- Version: 0.2
- URL: https://github.com/fangq/pyjdata
The JData Specification defines a lightweight
language-independent data annotation interface targetted at
storing and sharing complex data structures across different programming
languages such as MATLAB, JavaScript, Python etc. Using JData formats, a
complex Python data structure can be encoded as a dict
object that is easily
serialized as a JSON/binary JSON file and share such data between
programs of different languages.
How to install
- Github: download from https://github.com/fangq/pyjdata
- PIP: run
pip install jdata
see https://pypi.org/project/jdata/
Optional Dependency (if reading or writing Binary JData/UBJSON files):
- bjdata: PIP: run
pip install bjdata
see https://pypi.org/project/bjdata/ - numpy: PIP: run
pip install numpy
orsudo apt-get install python-numpy
How to use
The PyJData module is easy to use. You can use the encode()/decode()
functions to
encode Python data into JData annotation format, or decode JData structures into
native Python data, for example
import jdata as jd
import numpy as np
a={'str':'test','num':1.2,'list':[1.1,[2.1]],'nan':float('nan'),'np':np.arange(1,5,dtype=np.uint8)}
jd.encode(a)
jd.decode(jd.encode(a))
d1=jd.encode(a,{'compression':'zlib','base64':1})
d1
jd.decode(d1,{'base64':1})
One can further save the JData annotated data into JSON or binary JSON (UBJSON) files using
the jdata.save
function, or loading JData-formatted data to Python using jdata.load
import jdata as jd
import numpy as np
a={'str':'test','num':1.2,'list':[1.1,[2.1]],'nan':float('nan'),'np':np.arange(1,5,dtype=np.uint8)}
jd.save(a,'test.json')
newdata=jd.load('test.json')
newdata
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.