Python任务求助:调用Bored API统计≤3参与者的请求次数
解决调用Bored API统计参与者≤3次数的问题
我正在攻读数据科学硕士学位,Python课程任务要求:调用http://www.boredapi.com/api/activity/ 100次,统计返回结果中参与者数量≤3的次数。
我最初写的代码如下:
import requests total_calls = 100 call_0 = 0 def calls(total_calls, call_0): while total_calls > call_0: activity = ('http://www.boredapi.com/api/activity/') call_n = requests.get(activity) print(call_n.text) call_0 += 1 if total_calls - call_0 < 0: print(call_0) elif total_calls - call_0 == 0: break return output_call output_call = calls(total_calls, call_0) output_call
现在的问题是不知道如何统计符合条件的次数,比如调用9次时返回的结果里,大部分参与者都是1,但不知道怎么计数。
修正后的代码
import requests def count_participants_under_3(total_calls): # 初始化符合条件的计数器 valid_count = 0 api_url = "http://www.boredapi.com/api/activity/" for _ in range(total_calls): try: response = requests.get(api_url) # 解析JSON响应为字典 activity_data = response.json() # 检查字段存在性并判断参与者数量 if "participants" in activity_data and activity_data["participants"] <= 3: valid_count += 1 # 可选:打印当前响应数据,用于调试 print(activity_data) except Exception as e: print(f"请求出错: {e}") return valid_count # 执行100次调用并统计结果 result = count_participants_under_3(100) print(f"参与者数量≤3的次数: {result}")
关键修改说明
- 改用for循环:直接通过
range(total_calls)控制调用次数,避免手动维护计数器的冗余操作 - 解析JSON数据:用
response.json()把接口返回的字符串转为字典,直接提取participants字段 - 新增计数器:初始化
valid_count,每次符合条件就自增,最终返回统计结果 - 异常处理:捕获请求或解析时的错误,避免程序中途崩溃
- 字段存在性检查:防止出现示例中
{}这类空数据导致的KeyError
内容的提问来源于stack exchange,提问作者Uri
相关产品推荐
相关产品推荐

