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

Python3从字典列表筛选指定字典并提取特定键值的方法

Python字典筛选与字段提取实现方案

需求说明

  • 运行环境:Python 3.x
  • 待实现功能:从JSON解析得到的字典列表中,筛选出name字段值为abcd的目标字典,提取该字典内的name、id字段值存入变量,供后续业务逻辑调用。
  • 预期筛选得到的目标字典:
{'name': 'abcd', 'id': '41541893-f916-426b-b135-c7500759b0b3', 'created_at': '2022-06-24T08:39:39.806Z'}

现有代码与运行输出

原有代码

output = data.decode("utf-8")
input = json.loads(output)
for itm in input['items']:
    print(itm)

提示:input是Python内置的输入函数名,不建议作为自定义变量名使用,会覆盖内置方法导致后续调用input()时出现异常,下述实现中会替换为input_data规避该问题。

原有代码运行输出

{'name': 'ufg', 'id': '0126ffc8-a1b1-423e-b7fe-56d4e93a80d6', 'created_at': '2022-06-16T04:37:32.958Z'}
{'name': 'xyz', 'id': '194ac74b-54ac-45c6-b4d3-c3ae3ebc1d27', 'created_at': '2022-06-26T10:32:50.307Z'}
{'name': 'defg', 'id': '3744bdaa-4e74-46f6-bccb-1dc2eca2d2c1', 'created_at': '2022-06-26T10:55:21.273Z'}
{'name': 'abcd', 'id': '41541893-f916-426b-b135-c7500759b0b3', 'created_at': '2022-06-24T08:39:39.806Z'}

完整实现代码

直接在原有解析逻辑的基础上增加遍历匹配、字段提取逻辑即可,匹配到目标后直接终止循环,减少不必要的遍历开销:

import json

output = data.decode("utf-8")
input_data = json.loads(output)

# 初始化变量,避免未匹配到时变量不存在抛出异常
target_dict = None
target_name = None
target_id = None

for itm in input_data['items']:
    if itm.get('name') == 'abcd':
        target_dict = itm
        target_name = itm['name']
        target_id = itm['id']
        break  # 找到唯一目标后直接跳出循环

# 以下为结果验证,正式使用可删除
print("筛选得到的目标字典:", target_dict)
print("提取的name值:", target_name)
print("提取的id值:", target_id)

运行效果

执行代码后输出如下,符合预期:

筛选得到的目标字典: {'name': 'abcd', 'id': '41541893-f916-426b-b135-c7500759b0b3', 'created_at': '2022-06-24T08:39:39.806Z'}
提取的name值: abcd
提取的id值: 41541893-f916-426b-b135-c7500759b0b3

后续逻辑直接调用target_name、target_id变量即可。

补充说明

  • 用itm.get('name')做判断而非直接取itm['name'],是为了避免列表中存在缺失name字段的字典时触发KeyError,如果能确定所有字典都包含name字段,直接写itm['name'] == 'abcd'也可正常运行。
  • 如果列表中可能存在多个name值为abcd的条目,删掉break语句,把匹配到的字典追加到结果列表中存储即可。
  • 变量初始化步骤不要省略,否则当列表中不存在匹配项时,后续调用target_name、target_id会抛出变量未定义的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:24:37