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

TF2成就遍历异常:函数加载JSON后仅处理首个元素即停止

问题分析与修复

核心问题

你的代码仅能获取首个成就的原因是**resolveAchievements函数的return语句写在了for循环内部**,导致循环执行第一次迭代就直接返回,终止了后续的成就遍历。终端重复打印两次相同内容,说明这个函数被调用了两次,每次都只处理第一个成就。

修复代码

修改Data.py中的resolveAchievements函数,将return移出循环体,循环内仅完成列表追加操作:

def resolveAchievements(ac):
    _ac = json.loads(ac)
    # 清空列表避免重复添加(若函数可能被多次调用)
    acName.clear()
    acDesc.clear()
    acUnlock.clear()
    for achievement in _ac["playerstats"]["achievements"]:
        print(achievement)
        acName.append(achievement["name"])
        acDesc.append(achievement["description"])
        acUnlock.append(achievement["achieved"])
    # 若需返回处理后的列表,可在此统一返回,否则无需return
    # return acName, acDesc, acUnlock

额外注意事项

  • 检查Main.py中调用resolveAchievements的逻辑,确保只调用一次,避免重复填充列表导致后续addText重复处理数据。
  • 若acName等为全局列表,函数开头的清空操作可防止多次调用时累积旧数据。

验证效果

修改后,函数会遍历所有成就并完成列表填充,Main.py中的for a in acName就能循环所有成就名称,通过addText生成完整的成就展示内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:43:16