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

Python遍历嵌套字典列表 匹配指定address返回对应id方法

Python遍历字典列表筛选指定字段值的实现方案

你不需要硬编码列表索引来取值,直接遍历my_dict['result']列表的所有元素,逐个做字段值判断即可完成批量提取,下面提供两种常用实现方式:


方法1:基础for循环(逻辑直观,易调试)

逻辑拆分清晰,适合刚接触循环的开发者使用:

# 存储匹配到的id结果
target_ids = []

# 迭代result列表下的每一个条目
for entry in my_dict['result']:
    # 校验当前条目的address是否匹配目标值
    if entry.get("address") == "0xd2":
        target_ids.append(entry.get("id"))

# 打印结果
print(target_ids)

运行后输出:

['632', '315', '432']

说明:你给出的示例数据集中,id为100的条目对应address值是0x44,不符合0xd2的匹配规则。如果需要同时匹配多个地址拿到四个id,把判断条件修改为if entry.get("address") in ("0xd2", "0x44"):即可,此时输出结果为['632', '315', '432', '100'],和你提到的预期结果一致。


方法2:列表推导式(简洁高效,Python推荐写法)

对于简单的筛选逻辑,用列表推导式可以用更少的代码实现相同效果:

# 单地址匹配
target_ids = [entry["id"] for entry in my_dict["result"] if entry["address"] == "0xd2"]

# 多地址匹配(拿四个id的版本)
# target_ids = [entry["id"] for entry in my_dict["result"] if entry["address"] in ("0xd2", "0x44")]

print(target_ids)

注意事项

  • 不要硬编码列表索引(比如你之前用的[2])做批量处理,直接迭代列表本身可以自动适配任意长度的数据集
  • 上面代码里用dict.get()取值可以避免条目缺失对应字段时抛出KeyError,如果确定所有条目字段结构完整,直接用entry['address']的写法也可以
  • 如果需要把id转成整数类型,在追加结果/推导的时候用int(entry["id"])做类型转换即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:19:52