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

如何在顶层键可变的Python嵌套字典中批量查找studio键内容

解决方案

核心思路

无需关注顶层键的具体取值,直接遍历字典的所有顶层值(调用dict.values()方法即可获取),对每个顶层值按路径匹配["data"]["studio"]即可实现无感知提取。

代码实现

基础版本(适配结构完全统一的场景)

如果确定所有待处理字典的结构完全符合预期,不会出现字段缺失的情况,可以用如下写法:

# 把所有待处理的字典放进一个列表
dict_list = [dict1, dict2]
# 存储所有提取到的studio内容
studio_result = []

for cur_dict in dict_list:
    # 直接遍历顶层值,不需要管顶层键是什么
    for top_value in cur_dict.values():
        if "studio" in top_value.get("data", {}):
            studio_result.append(top_value["data"]["studio"])

容错增强版本(适配可能存在字段缺失的场景)

如果不能保证所有结构100%统一,可增加逐层判断避免抛出KeyError:

studio_result = []
for cur_dict in [dict1, dict2]:
    for top_value in cur_dict.values():
        data_node = top_value.get("data")
        if not data_node:
            continue
        studio_node = data_node.get("studio")
        if studio_node:
            studio_result.append(studio_node)

极简一行写法

如果偏好简洁的实现,可以用生成器表达式完成:

studio_result = [top_val["data"]["studio"] for d in [dict1, dict2] for top_val in d.values() if "studio" in top_val.get("data", {})]

额外说明

如果确认每个字典里最多只有一个包含studio的顶层节点,可以在提取到第一个符合条件的节点后加break终止当前字典的遍历,减少不必要的性能消耗。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:06:04