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

求助:如何在Python多嵌套字典中搜索指定Meno字段的值

在多层嵌套字典中搜索特定值的问题

我没法编写代码在多层嵌套字典里搜索某个特定值,我的字典结构如下(键名是母语,敬请谅解):

{
    "Učitelia" : {
        "Mgr. Liana Smrečanová" : {
            "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Liana", "Priezvisko" : "Smrečanová", "Trieda" : "III. C"
        },
        "PaedDr. Mária Slováková" : {
            "titul" : "PaedDr.", "druhy_titul" : "", "Meno" : "Mária", "Priezvisko" : "Slováková", "Trieda" : "IV. B"
        },
        "Mgr. Dominika Šimová" : {
            "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Dominika", "Priezvisko" : "Šimová", "Trieda" : "I. C"
        },
        "Mgr. Viera Šuchmová" : {
            "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Viera", "Priezvisko" : "Šuchmová", "Trieda" : "Septima A"
        },
        "PaedDr. Emília Uhláriková" : {
            "titul" : "PaedDr.", "druhy_titul" : "", "Meno" : "Emília", "Priezvisko" : "Uhláriková", "Trieda" : ""
        },
        "Ing. Ján Valuška" : {
            "titul" : "Ing.", "druhy_titul" : "", "Meno" : "Ján", "Priezvisko" : "Valuška", "Trieda" : ""
        },
        "Mgr. Jana Vasilová" : {
            "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Jana", "Priezvisko" : "Vasilová", "Trieda" : ""
        },
        "PhDr. Ivana Veselá" : {
            "titul" : "PhDr.", "druhy_titul" : "", "Meno" : "Ivana", "Priezvisko" : "Veselá", "Trieda" : "II. B"
        },
        "Mgr. Tatiana Volentier, PhD." : {
            "titul" : "Mgr.", "druhy_titul" : "PhD.", "Meno" : "Tatiana", "Priezvisko" : "Volentier", "Trieda" : ""
        },
        "Mgr. Jaroslav Výbošťok" : {
            "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Jaroslav", "Priezvisko" : "Výbošťok", "Trieda" : ""
        }
    },

    "Vedenie" : {
        "Riaditeľ" : {
            "RNDr. Ivetta Vidová" : {
                "titul" : "RNDr.", "druhy_titul" : "", "Meno" : "Ivetta", "Priezvisko" : "Vidová", "Trieda" : ""
            }
        },
        "Zástupcovia" : {
            "Mgr. Ľubica Knollová" : {
                "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Ľubica", "Priezvisko" : "Knollová", "Trieda" : ""
            },
            "Mgr. Miroslav Škrinár" : {
                "titul" : "Mgr.", "druhy_titul" : "", "Meno" : "Miroslav", "Priezvisko" : "Škrinár", "Trieda" : ""
            },
            "Ing. Jozef Výboh" : {
                "titul" : "Ing.", "druhy_titul" : "", "Meno" : "Jozef", "Priezvisko" : "Výboh", "Trieda" : ""
            }
        }
    }
}

我想要在所有"Zamestnanci"(员工)中搜索"Meno"字段,但目前只能在"Učitelia"(教师)中找到对应值,因为"Vedenie"(管理层)包含更深层的字典结构。我尝试编写的多层循环代码没有任何输出结果,请求帮助。

以下是仅能搜索"Učitelia"的代码:

end = []
for i in dict_.get("Učitelia"):
    if dict_.get("Učitelia").get(i).get("Meno") == "Liana":  
        end.append(dict_.get("Učitelia").get(i))

这是我尝试编写的代码:

end = []
for i in dict_:
    if dict_.get("Meno") != None:
        if dict_.get("Meno") == "Liana":
            end.append(dict_.get("Meno"))
            dict_ = reset_dict()
        break
    else:    
        dict_ = dict_.get(i)
        dict_a = dict_
        print("\na", dict_a)
        for a in dict_a:
            print("\n", a, dict_a)

            if dict_.get("Meno") != None:
                if dict_.get("Meno") == "Liana":
                    end.append(dict_.get("Meno"))
                    dict_ = reset_dict()
                break
            else:   
                dict_ = dict_.get(a)
                dict_b = dict_
                print("\nb", dict_b)
                for b in dict_b:
                    print("\n", b, dict_b)

                    if dict_.get("Meno") != None:
                        if dict_.get("Meno") == "Liana":
                            end.append(dict_.get("Meno"))
                            dict_ = reset_dict()
                        break
                    else:
                        dict_ = dict_.get(b)
                        dict_c = dict_
                        print("\nc", dict_c)
                        for c in dict_c:
                            print("\n", c, dict_c)
                              
                            if dict_.get("Meno") == "Liana":
                                end.append(dict_.get("Meno"))
                                dict_ = reset_dict()
                            break

注:dict_指上述的字典,我只有12岁,编程经验有限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:05:39