NumpyEncoder

0.3.2 · active · verified Thu Apr 16

NumpyEncoder is a Python JSON encoder designed to seamlessly handle various NumPy data types, including `ndarray`, `np.number`, `np.datetime64`, and more, which are not natively supported by Python's standard `json` module. It extends `json.JSONEncoder` to provide a plug-and-play solution for serializing data structures containing NumPy objects into JSON strings. The current version is 0.3.2, with releases occurring periodically to maintain compatibility with evolving NumPy versions.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to use `NumpyEncoder` to serialize a dictionary containing various NumPy data types (an array, a scalar integer, and a datetime object) into a JSON string. The `cls=NumpyEncoder` argument passed to `json.dumps` ensures that NumPy objects are correctly converted into JSON-serializable Python native types.

import json
import numpy as np
from numpyencoder import NumpyEncoder

# Example with a NumPy array and scalar
numpy_data = {
    'array_field': np.array([0, 1.5, 2, 3]),
    'scalar_field': np.int64(123),
    'datetime_field': np.datetime64('2023-01-01T12:00:00')
}

# Serialize the data using NumpyEncoder
json_output = json.dumps(numpy_data, cls=NumpyEncoder, indent=2)
print(json_output)

# The output will convert numpy types to native Python types (lists, int, string for datetime)
expected_output_fragment = '"array_field": [
    0.0,
    1.5,
    2.0,
    3.0
  ],
  "scalar_field": 123,
  "datetime_field": "2023-01-01T12:00:00"'

view raw JSON →