json-numpy
provides lossless and quick JSON encoding/decoding for NumPy arrays and scalars.
json-numpy
follows Semantic Versioning.
json-numpy
can be installed using pip
:
$ pip install json-numpy
For a quick start, json_numpy
can be used as a simple drop-in replacement of the built-in json
module. \
The dump()
, load()
, dumps()
and loads()
methods are implemented by wrapping the original methods and replacing the default encoder and decoder. \
More information on the usage can be found in the json
module's documentation.
import numpy as np
import json_numpy
arr = np.array([0, 1, 2])
encoded_arr_str = json_numpy.dumps(arr)
decoded_arr = json_numpy.loads(encoded_arr_str)
Another way of using json_numpy
is to explicitly use the provided encoder and decoder functions in conjunction with the json
module.
import json
import numpy as np
from json_numpy import default, object_hook
arr = np.array([0, 1, 2])
encoded_arr_str = json.dumps(arr, default=default)
decoded_arr = json.loads(encoded_arr_str, object_hook=object_hook)
Finally, the last way of using json_numpy
is by monkey patching the json
module after importing it first:
import json
import numpy as np
import json_numpy
json_numpy.patch()
arr = np.array([0, 1, 2])
encoded_arr_str = json.dumps(arr)
decoded_arr = json.loads(encoded_arr_str)
This method can be used to change the behavior of a module depending on the json
module without editing its code.
The simplest way to run tests is:
$ python -m unittest
As a more robust alternative, you can install tox
to automatically test across the supported python versions, then run:
$ tox
Please report any bugs or enhancement ideas using the issue tracker.
json-numpy
is licensed under the terms of the MIT License (see LICENSE.txt for more information).