编写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
相关产品推荐
相关产品推荐

