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

Python中遇KeyError时如何循环遍历API密钥列表?

解决Python中KeyError时循环遍历API密钥的问题

你可以通过循环遍历密钥列表+异常捕获的方式,逐个尝试密钥直到找到可用的,或者处理所有密钥都失效的情况。以下是几种实用的实现方案:

方案1:使用for循环逐个尝试(直观易读)

直接遍历密钥列表,对每个密钥尝试操作,遇到有效密钥就终止循环:

keys = ['key1','key2','key3','key4','key5']
valid_dict = {
    "key3": "3",
    "key4": "4",
    "key5": "5"
}

result = None
for key in keys:
    try:
        result = valid_dict[key]
        print(f"找到有效密钥 {key},对应值:{result}")
        break  # 找到有效密钥,跳出循环
    except KeyError:
        print(f"密钥 {key} 无效,跳过")

if not result:
    print("所有密钥均无法使用")

方案2:结合迭代器与while循环(适合动态生成密钥的场景)

如果密钥是动态生成的(比如从文件/数据库读取),可以用迭代器配合while循环:

keys = ['key1','key2','key3','key4','key5']
keys_iter = iter(keys)
valid_dict = {
    "key3": "3",
    "key4": "4",
    "key5": "5"
}

result = None
while True:
    try:
        current_key = next(keys_iter)
        result = valid_dict[current_key]
        print(f"找到有效密钥 {current_key},对应值:{result}")
        break
    except KeyError:
        print(f"密钥 {current_key} 失效,尝试下一个")
    except StopIteration:
        # 迭代器耗尽,所有密钥都尝试过了
        print("所有密钥均无效")
        break

适配实际API请求场景

把字典访问替换成实际的API请求函数,就能直接应用到你的业务中:

def send_api_request(api_key):
    # 模拟API请求逻辑:只有key3-key5能通过验证
    valid_keys = {"key3": "用户数据", "key4": "订单数据", "key5": "商品数据"}
    if api_key not in valid_keys:
        raise KeyError("无效的API密钥")
    return f"使用密钥 {api_key} 请求成功,返回内容:{valid_keys[api_key]}"

keys = ['key1','key2','key3','key4','key5']
success_response = None

for key in keys:
    try:
        success_response = send_api_request(key)
        print(success_response)
        break
    except KeyError:
        print(f"密钥 {key} 无法通过验证,尝试下一个")

if not success_response:
    print("所有API密钥都已失效,请更新密钥列表")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:55:27