0

我试图弄清楚如何使用 django 将 postman 中的原始 JSON 数据推送到我的 rest api 并使用该数据进行一些计算。

我已经尝试了几个代码片段,但我无法弄清楚

这是我的 JSON:

{
   "Dependents": 1,
   "ApplicantIncome": 4583,
   "CoapplicantIncome": 1508,
   "LoanAmount": 128000,
   "Loan_Amount_Term": 360,
   "Credit_History": 1,
   "Gender_Female": 0,
   "Gender_Male": 1,
   "Married_No": 0,
   "Married_Yes": 1,
   "Education_Graduate": 1,
   "Education_Not Graduate": 0,
   "Self_Employed_No": 1,
   "Self_Employed_Yes": 0,
   "Property_Area_Rural": 1,
   "Property_Area_Semiurban": 0,
   "Property_Area_Urban": 0
 }

这是python代码:

@api_view(["POST"])
def ClientData(request):
    return Response(request.data)

上述代码显示邮递员响应中的 JSON 文件

现在我想在另一个函数中使用上面的响应来做一些计算

def NewData(request):
    data = ClientData(request)
    newsum=data['LoanAmount']*4
    print(newsum)
4

2 回答 2

1

试试这个方法...

输入数据的邮递员图像

在邮递员中:

  1. 选择正文
  2. 点击原始
  3. 确保您选择了 JSON 而不是文本

客户端部分结束,在服务器部分将代码放在您的视图中,记住使用 django rest 框架。希望你能从我的代码中得到一个想法

from rest_framework.generics import ListAPIView
class TestAPIView(ListAPIView):

    def patch(self, request):
        data = self.request.data
        print("received data : ",data)

        someCalculation = data['LoanAmount']*4
        return Response({
           "status": True,
           "LoanAmount calculation": someCalculation,
            "data": data
        })

这是处理后的输出:

响应图像

于 2021-03-15T10:25:26.270 回答
0

您需要将数据反序列化为Python对象,例如字典 ( dict)。尝试查看有关反序列化的Django Rest Framework文档,以查看此特定框架的最佳实践。

目前你可能有一个类似String的对象,比如unicodeor strinside request.data;反序列化此数据会将其转换为功能更强大的类似Hash的对象,例如dict.

反序列化可以很简单:

data = json.loads(request.data)
if data['key'] == something:
   . . .  

但这在实际工作案例中并不实用,因为Python' 的内置json模块有一些限制,所以再次参考框架反序列化方法。

于 2019-08-23T04:22:06.317 回答