在 Django 中训练的 AI 模型,如何以 JSON 格式返回结果?

问题描述

首先,我正在阅读一个包含决策树回归模型的 pickle 文件。然后我想预测最终成本。当我输入它预测正确成本的数据时,这是通过邮递员完成的完美工作。但就我而言,我想将结果返回为 JSON 格式,因为我会将此结果发送到带有 Django rest 框架的 Android Studio。

Bellow 是 views.py,我不知道如何将结果返回到 JSON

from django.core.exceptions import SuspiciousOperation
from django.shortcuts import render,redirect
from django.views.decorators.csrf import csrf_exempt
from rest_framework.decorators import APIView
from rest_framework.status import HTTP_400_BAD_REQUEST
from django.http import JsonResponse
from .models import Customers
from rest_framework.response import Response
from .serializers import CustomersSerializer
from rest_framework import status
import pickle
import json
import numpy as np


# Create your views here.

def home(request):
    return Response(request)


class CustomerList(APIView):

    def get(self,request):
        customers = Customers.objects.all()
        serializer = CustomersSerializer(customers,many=True)
        return Response(serializer.data)

    def post(self,request):
        serializer = CustomersSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data,status=status.HTTP_201_CREATED)
        return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)


###########################################


def Prediction_Model(AGE,EXEMPTION_AMOUNT,PLACE_OF_HOSPITALIZATION,SMOKER,ALCOHOLIC_BEVERAGE,NATURAL_DEFECT):
    X = [[AGE,NATURAL_DEFECT]]
    model = pickle.load(open('C:\\Users\\user\\PycharmProjects\\thesis\\model.pkl','rb'))
    prediction = model.predict(X)
    return prediction


# except Exception:
#    return False


def convertInt(name):
    try:
        k = int(name)
        return k
    except Exception:
        return False


def convertHospital(n):
    if n == 'A':
        return 1
    elif n == 'B':
        return 2
    else:
        return False


def convert(n):
    if n == 'YES':
        return 1
    elif n == 'NO':
        return 0
    else:
        return False


@csrf_exempt
def result(request):
    Age = convertInt(request.POST.get('AGE',''))
    # print('The age is: {}'.format(Age))
    ExAmount = convertInt(request.POST.get('EXEMPTION_AMOUNT',''))
    Hospit = convertHospital(request.POST.get('PLACE_OF_HOSPITALIZATION',''))
    Smoker = convert(request.POST.get('SMOKER',''))
    Alcohol = convert(request.POST.get('ALCOHOLIC_BEVERAGE',''))
    Defect = convert(request.POST.get('NATURAL_DEFECT',''))

    #list = [Age,ExAmount,Hospit,Smoker,Alcohol,Defect]

    #if False in list:
     #   return Response(status=HTTP_400_BAD_REQUEST)

    results = Prediction_Model(Age,Defect)

    return render(request,'result.html',{'results': results})

我尝试过:HttpRespone、Response、JsonRespone,但没有任何帮助。

当我尝试上述方法时,服务器在这一行显示异常

return render(request,{'results': results})

下面是urls.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import url

from .views import CustomerList,result,home



urlpatterns = [
    url('home/',home),url('result/',result),url('show',CustomerList.as_view())
   # path('show/',CustomerList.as_view()),# Django rest framework template with all the customer data
]

如果有人认为错误在另一个文件中,我可以分享它

我怎样才能将结果返回到 JSON 中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)