You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写Python客户端调用在线超市API获取产品并统计数量遇阻求助

Python访问在线超市API获取产品总数问题解决

代码错误分析

你的两段代码存在以下问题:

  • 第一段代码中,json.dumps(response, indent=5, sort_keys=True)错误地将requests的Response对象传入json.dumps,该方法需要序列化Python字典/列表等对象,而非Response实例。
  • 第二段代码仅打印了API返回的JSON数据,但未实现统计产品总数的需求,同时缺少请求失败的异常处理逻辑。

修正后的代码

import requests

BASE_URL = 'http://host1.open.uom.lk:8080'

try:
    # 发送GET请求获取产品数据
    response = requests.get(f"{BASE_URL}/api/products")
    # 检查请求是否成功
    response.raise_for_status()
    
    # 将响应解析为Python字典
    result = response.json()
    
    # 从data字段中提取产品列表,统计总数
    product_count = len(result.get('data', []))
    print(f"产品总数:{product_count}")

except requests.exceptions.RequestException as e:
    print(f"请求失败:{e}")
except ValueError:
    print("API返回的不是有效的JSON数据")

代码说明

  • 使用response.raise_for_status()捕获请求错误(如404、500等状态码)。
  • 通过result.get('data', [])安全获取产品列表,避免因API返回结构变化导致的KeyError。
  • 用len()统计产品列表的长度,得到产品总数。

内容的提问来源于stack exchange,提问作者ChevroletC7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:55:19