arthurai.core.util.NumpyEncoder#

class arthurai.core.util.NumpyEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)#

Bases: json.encoder.JSONEncoder

Special json encoder for numpy types

Methods

convert_value

Converts the given object from a numpy data type to a python data type, if the object is already a python data type it is returned

default

Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

encode

Return a JSON string representation of a Python data structure.

iterencode

Encode the given object and yield each string representation as available.

Attributes

item_separator

key_separator

static convert_value(obj)#

Converts the given object from a numpy data type to a python data type, if the object is already a python data type it is returned

Parameters

obj – object to convert

Returns

python data type version of the object

default(o)#

Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

For example, to support arbitrary iterators, you could implement default like this:

def default(self, o):
    try:
        iterable = iter(o)
    except TypeError:
        pass
    else:
        return list(iterable)
    # Let the base class default method raise the TypeError
    return JSONEncoder.default(self, o)
encode(o)#

Return a JSON string representation of a Python data structure.

>>> from json.encoder import JSONEncoder
>>> JSONEncoder().encode({"foo": ["bar", "baz"]})
'{"foo": ["bar", "baz"]}'
iterencode(o, _one_shot=False)#

Encode the given object and yield each string representation as available.

For example:

for chunk in JSONEncoder().iterencode(bigobject):
    mysocket.write(chunk)