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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:25:24