如何通过序列化程序从 API 验证 JSON

问题描述 投票:0回答:0

我是 Django 的新手,我知道如何使用模型序列化程序,但我找不到有关如何从 API 验证数据的信息。例如, 我有一个从另一个网络服务获取数据的方法。

def get_sales(self):
    url = "https://statistics-api.com/api/v1/sales"
    body = {"dateFrom": f"{datetime.datetime.now().date() - datetime.timedelta(days=30)}"}
    try:
        request = requests.get(url, params=body)
        if request.status_code == 200:
            return True, request.json()
        return False, request.json()["errors"]
    except json.JSONDecodeError as e:
        return False, f"Response is not in JSON format"

响应为 JSON 格式。像这样:

(True, [{'date': '2023-03-03T13:02:22', 'barcode': '46134548641', 'totalPrice': 500, 'discountPercent': 52}]

所以,我需要从我的 views.py 中的响应中获取数据:

sales = api.get_sales()
  result, sales_info = sales
  if result:
     try:
        prices_count = []
        for element in sales_info:
          price = element.get("totalPrice", "")
          prices_count.append(price)
        transactions_total = sum(prices_count)

我知道这不是最佳实践,因为 KeyError。如何通过序列化程序验证数据?

django serialization django-rest-framework django-serializer
© www.soinside.com 2019 - 2024. All rights reserved.