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

Python脚本无输出无报错排查:网站API可用槽位查询脚本问题

问题排查与解决

最可能的原因:函数未被调用

你的代码仅定义了available_slots()函数,但没有在脚本末尾调用这个函数。Python脚本运行时只会执行顶级代码,定义函数不会自动执行函数体内容,所以脚本运行后无任何输出也不报错。

解决方法:在脚本最后添加一行调用代码:

available_slots()

其他排查步骤(如果调用函数后仍有问题)

1. 验证API请求是否成功

添加状态码检查,确认请求未失败:

result = requests.get(URL, headers=header)
print("请求状态码:", result.status_code)  # 正常请求应返回200
result.raise_for_status()  # 请求失败时直接抛出异常,方便定位问题
  • 若状态码不是200,说明API地址有误、权限不足或服务器异常,需核对URL和请求头信息。

2. 检查JSON结构与日期键是否匹配

你硬编码了日期键"2022-12-08",但API返回的日期格式可能变更,或该日期不存在于返回结果中。可先打印所有日期键确认:

response_json = result.json()
print("API返回的日期键列表:", list(response_json.keys()))

如果目标日期不在列表内,需调整日期键,或改用动态日期(比如datetime.date.today().isoformat()获取当天日期)。

3. 修正循环中的提前终止逻辑

当前代码找到第一个可用槽位后就会return True,后续可用槽位不会被打印。若需输出所有可用槽位,将return True移至循环外:

def available_slots():
    counter = 0
    result = requests.get(URL, headers=header)
    result.raise_for_status()
    response_json = result.json()
    data = response_json["2022-12-08"]
    for each in data:
        if each["available"]:  # 简化写法,等价于each["available"] == True
            counter += 1
            print(each["name"])
    if counter > 0:
        print(f"共找到{counter}个可用槽位")
        return True
    else:
        print("No Available Slots")
        return False

4. 确认返回的data数组非空

如果response_json["2022-12-08"]是空数组,循环不会执行,直接进入counter==0分支。可添加打印确认:

data = response_json["2022-12-08"]
print("该日期下的槽位数量:", len(data))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:15:39