Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中训练AI模型,如何以JSON格式返回结果?_Python_Json_Django Rest Framework_Return_Jsonresult - Fatal编程技术网

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

Python 在Django中训练AI模型,如何以JSON格式返回结果?,python,json,django-rest-framework,return,jsonresult,Python,Json,Django Rest Framework,Return,Jsonresult,首先,我正在阅读一个包含决策树回归模型的pickle文件。然后我想预测最终的成本。这是完美的作品通过邮递员当我输入数据,它预测正确的成本。但在我的例子中,我希望将结果返回为JSON格式,因为我将使用Django rest框架将此结果发送到Android Studio 下面是views.py,我不知道如何将结果返回到JSON from django.core.exceptions import SuspiciousOperation from django.shortcuts import ren

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

下面是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, EXEMPTION_AMOUNT, PLACE_OF_HOSPITALIZATION, SMOKER, ALCOHOLIC_BEVERAGE, 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, ExAmount, Hospit, Smoker, Alcohol, Defect)

    return render(request, 'result.html', {'results': results})
我尝试过:HttpRespone、Response、JsonRespone,但这对我毫无帮助

当我尝试上面的方法时,服务器在这一行运行exeption

返回呈现(请求'result.html',{'results':results})

下面是url.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中