簡體   English   中英

如何通過密鑰獲取字典及其所有元素?

[英]How to get a dictionary and all its elements by key?

我有這樣的結構:

{
    "content": "Name 1", 
    "name": "directory", 
    "decendent": [
         {
            "content": "Name 2", 
            "name": "subdirectory", 
            "decendent": None
        }, 
        {
            "content": "Name 3", 
            "name": "subdirectory_two", 
            "decendent": [
                {
                    "content": "Name 4", 
                    "name": "subsubdirectory", 
                    "decendent": None
                }
            ]
        }
    ]
}

我必須查找名稱(名稱是一個字符串並且是唯一的),如果找到它,則將整個詞典保存在其他變量中。 例如:

我正在尋找“子目錄”,我應該得到:

       {
            "content": "Name 2", 
            "name": "subdirectory", 
            "decendent": None
        }

並將其保存在變量中。

如何在Python中執行此搜索?

您可以使用遞歸函數檢查當前詞典的名稱,如果該名稱匹配,則返回該詞典,否則嘗試“后代”(如果有),如果匹配則返回。

def find_name(d, name):
    if d["name"] == name:
        return d
    for d2 in d["decendent"] or []:
        res = find_name(d2, name)
        if res:
            return res

例:

>>> dictionary = { your dictionary }
>>> print find_name(dictionary, "subdirectory")
{'content': 'Name 2', 'name': 'subdirectory', 'decendent': None}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM