Python 在Django中训练AI模型,如何以JSON格式返回结果?
首先,我正在阅读一个包含决策树回归模型的pickle文件。然后我想预测最终的成本。这是完美的作品通过邮递员当我输入数据,它预测正确的成本。但在我的例子中,我希望将结果返回为JSON格式,因为我将使用Django rest框架将此结果发送到Android Studio 下面是views.py,我不知道如何将结果返回到JSONPython 在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
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中