第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

急!遞歸方法,從data大字典中找出特定key的value值

急!遞歸方法,從data大字典中找出特定key的value值

猛跑小豬 2019-02-18 19:04:36
題目描述 從data大字典中找出特定鍵GlossTerm的value值 題目來源及自己的思路 題目來自面試筆試題我的思路是先將json格式data序列化得到字典格式data然后遞歸遍歷找到目標(biāo)鍵后退出遞歸并返回它的值 import json data = json.loads(data) def get_key_node(dict_data,obj_key): for key,value in dict_data.items(): if value: if not isinstance(value,dict): if key==obj_key: print(value) return value else: get_key_node(value,obj_key) print(get_key_node(data,"GlossTerm")) 相關(guān)代碼 data = '''{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } }'''import jsondata = json.loads(data) def get_key_node(dict_data,obj_key): for key,value in dict_data.items(): if value: if not isinstance(value,dict): if key==obj_key: print(value) return value else: get_key_node(value,obj_key) print(get_key_node(data,"GlossTerm")) 你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么? 期待的結(jié)果是 'Standard Generalized Markup Language 可我的方法結(jié)果是 None
查看完整描述

3 回答

?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

我記得回答過你類似的問題?基于你的代碼改的

def get_dictkeys(dic, find_key):
    find_value = 'no'
    for key, value in dic.items():
        if key == find_key:
            find_value = value
        elif isinstance(value, dict):
            find_value = get_dictkeys(value, find_key)
    if find_value == 'no':
        return 'dict doesnt have this key'
    else:
        return find_value
print get_dictkeys(data, "GlossTerm")

查看完整回答
反對 回復(fù) 2019-03-01
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

試試這樣:

result = []

def get_key_node(dict_data, obj_key):
    v = dict_data.get(obj_key)
    if v is not None:
        result.append(v)
    for value in dict_data.values():
        if isinstance(value, dict):
            get_key_node(value, obj_key)
            
print(result)            
查看完整回答
反對 回復(fù) 2019-03-01
  • 3 回答
  • 0 關(guān)注
  • 586 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號