如何编写Python程序从API服务器获取全部商品并统计数量?
获取在线超市API商品列表并统计总数
你提供的代码使用了PUT请求(用于更新或创建资源),这和需求中获取所有商品并统计总数的目标不符。以下是正确的实现方案:
正确代码实现
import requests BASE_URL = "http://host1.open.uom.lk:8080" try: # 发送GET请求获取所有商品列表 response = requests.get(f"{BASE_URL}/api/products/") # 检查请求是否成功 response.raise_for_status() # 解析JSON响应 result = response.json() # 验证响应状态并统计商品数量 if result.get("message") == "success": products = result.get("data", []) print(f"服务器当前存储的商品总数:{len(products)}") else: print(f"请求失败:{result.get('message', '未知错误')}") except requests.exceptions.RequestException as e: print(f"请求过程中发生错误:{str(e)}")
代码说明
- 使用
requests.get()发送GET请求,这是REST API中获取资源列表的标准方式 - 通过
response.raise_for_status()捕获HTTP请求错误(比如404、500等) - 解析响应JSON后,从
data字段中取出商品数组,用len()统计总数 - 增加异常处理,避免因网络问题或API响应异常导致程序崩溃
补充说明
根据API提供的响应格式,data字段是存储商品列表的数组,统计其长度即可得到商品总数。如果API的端点路径不是/api/products/,需要根据实际文档调整,但通常REST风格的API会用这个路径返回所有商品。
内容的提问来源于stack exchange,提问作者Public Dell
相关产品推荐
相关产品推荐

