TypeError: Object of type 'int32' is not JSON serializable

The type of each element in diseaseArray is a np.int32 as defined by the line:

diseaseArray=np.array(diseaseArray,dtype=int)  # Elements are int32

int32 cannot be serialized to JSON by the JsonResponse being returned from the view.

To fix, convert the id value to a regular int:

def predict(request):
    for i in diseaseArray:
        if i not in sym:
            dict={'id': int(i)}  # Convert the id to a regular int

Instead of manually casting the values to ints as the accepted answer suggests, you can usually let numpy do that for you.

Instead of calling


You can call


This should automatically convert any numpy-specific datatypes in the array to normal Python datatypes. In this case it will cast int32 to int, but it also supports other conversions.

Additionally, using numpys .unique() might give some speedup for large datasets.