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

Python如何遍历JSON对象数组并返回匹配指定键值对的字典

问题分析与修正方案

原代码错误点

  • 不必要的JSON解析:传入的obj本身就是Python列表结构,不是JSON字符串,不需要调用json.loads();同时函数内错误引用了全局变量item,没有使用传入的obj参数,还出现了变量名冲突。
  • 循环内访问对象错误:遍历数组得到的每个元素是单条数据,判断条件里错误访问了整个数组,应该访问当前遍历到的单个元素。
  • 语法错误:判断相等误用了赋值运算符=,应该用相等判断运算符==;且if语句末尾缺少必须的冒号:。
  • 返回值错误:匹配到结果时返回了整个数组,应该返回匹配到的单个元素对象。

修正后的完整代码

def func(obj, val_to_search, key_to_search):
    for entry in obj:
        # 先判断键是否存在,避免触发KeyError
        if key_to_search in entry and entry[key_to_search] == val_to_search:
            return entry
    # 无匹配结果时返回None
    return None

# 测试用例
item = [{'name': 'first'}, {'name': 'second', 'something': 'something4'},  {'name': 'third', 'hu': 'g'}]
# 测试检索name=first
print(func(obj=item, val_to_search='first', key_to_search='name'))
# 测试检索name=third
print(func(obj=item, val_to_search='third', key_to_search='name'))

运行后输出结果为:

{'name': 'first'}
{'name': 'third', 'hu': 'g'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:51:03