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

Python筛选JSON数据集匹配关键词条目返回空列表问题排查

代码返回空列表问题修复

你的代码存在4处逻辑/语法问题,是导致返回空列表的原因,逐一修正即可:

  • 条件判断写法完全错误:if dict in ['name'] == 'dagger'触发了Python的链式比较规则,实际等价于(dict in ['name']) and (['name'] == 'dagger'),后半段判断永远为假,因此不会有任何条目被加入结果列表。要获取字典中name字段的值,应使用[键名]索引取值的写法。
  • 缩进位置错误:
    1. 结果列表wpn_list的初始化、遍历数据集的for循环、最终的print和return语句缩进层级混乱:当前return写在for循环内部,第一次循环结束就会直接终止函数返回,根本不会遍历完所有数据
    2. 即使第一个条目匹配成功,你写的wpn_list.append(data)是把整个JSON全量数据追加进结果,而非当前匹配到的单个武器条目
  • 命名不规范:不要用dict作为循环变量名,这是Python内置的字典类型关键字,会覆盖内置方法,建议替换为weapon这类语义化名称

修正后的完整代码:

import json

def wpn_dagger():
    wpn_list = []
    with open('DSweapons.json', encoding='utf-8') as f:
        weapon_data = json.load(f)
    for weapon in weapon_data:
        # 用.get取值避免缺少name字段时抛出KeyError
        if weapon.get('name') == 'dagger':
            wpn_list.append(weapon)
    print(wpn_list)
    return wpn_list

如果你需要做模糊匹配(比如名称包含dagger即命中,而非必须完全等于dagger),可以把判断条件替换为if 'dagger' in weapon.get('name', '').lower(),同时兼容大小写不一致的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 12:24:59