问题描述
首先,我正在阅读一个包含决策树回归模型的 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 (将#修改为@)