Skip to main content

JData for Python - a lightweight and portable data annotation method

Build Status

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

This package can also be installed on Ubuntu (Debian package is currently under review) via

sudo add-apt-repository ppa:fangq/ppa
sudo apt-get update
sudo apt-get install python-jdata python3-jdata

Dependencies:

  • bjdata: PIP: run pip install bjdata see https://pypi.org/project/bjdata/
  • numpy: PIP: run pip install numpy or sudo apt-get install python-numpy
  • backports.lzma: PIP: run pip install backports.lzma (needed for Python 2.7)

Replacing pip by pip3 if you are using Python 3.x. If either pip or pip3 does not exist on your system, please run

    sudo apt-get install python-pip python3-pip

One can also install this module from the source code. To do this, you first check out a copy of the latest code from Github by

    git clone https://github.com/fangq/pyjdata.git
    cd pyjdata

then install the module to your local user folder by

    python setup.py install --user

or, if you prefer, install to the system folder for all users by

    sudo python setup.py install

Please replace python by python3 if you want to install it for Python 3.x instead of 2.x.

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

To see additional data type support, please run the built-in test using below command

python -m unittest discover -v test

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jdata-0.3.6.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file jdata-0.3.6.tar.gz.

File metadata

  • Download URL: jdata-0.3.6.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.5.2

File hashes

Hashes for jdata-0.3.6.tar.gz
Algorithm Hash digest
SHA256 d28a720214483934123900fbff45935f30d557f62b2e0cbffd7680d83920e02d
MD5 b6e689314232e7e94f50f47e2121ae5c
BLAKE2b-256 250dd5e0554a8585572bd49d6f763c9938a92a19db2da6809a5c7924d2e4bf42

See more details on using hashes here.

Release history Release notifications | RSS feed

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.7

2 files

This release

0.3.6 This release

1 file

0.3.5

1 file

0.3.0

1 file

0.2.5

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page