3 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
你可以試試這個。如果對象是dictisinstance(object,dict)則返回。我們必須找到作為值映射到鍵的字典。首先使用 . 檢查給定字典是否具有as 值。如果不是,則遍歷值,如果該值是字典,則再次重復上述過程。如果存在,則返回我們正在迭代的當前字典。Truecat_idcat_iddict.values()cat_id
In [90]: cat_data
Out[90]:
{'senior-developer': {'name': 'senior-developer',
'displayName': 'Senior Developer',
'uuid': '418714f8-b3bd-4ba5-b4a7-4f87717419f4',
'mid-level-developer': {'name': 'mid-level-developer',
'displayName': 'Mid-level Developer',
'uuid': 'a2c23d62-9d06-44f4-92dc-b28875173a54'}}}
In [91]: cat_id = "a2c23d62-9d06-44f4-92dc-b28875173a54"
In [94]: def recur(_dict,val):
...: if val in _dict.values():
...: return _dict
...: else:
...: for v in _dict.values():
...: if isinstance(v,dict):
...: return recur(v,val)
In [95]: recur(cat_data,cat_id)
Out[95]:
{'name': 'mid-level-developer',
'displayName': 'Mid-level Developer',
'uuid': 'a2c23d62-9d06-44f4-92dc-b28875173a54'}
In [96]: retrived_cat=recur(cat_data,cat_id)
In [97]: retrived_cat
Out[97]:
{'name': 'mid-level-developer',
'displayName': 'Mid-level Developer',
'uuid': 'a2c23d62-9d06-44f4-92dc-b28875173a54'}

TA貢獻1796條經(jīng)驗 獲得超7個贊
isinstance(myObject,dict)
.
例如:
isinstance({},dict)
返回真,而
isinstance([],dict)
返回 False

TA貢獻1789條經(jīng)驗 獲得超8個贊
if is_instance(slug, _dict): search_for_cat_id(cat_id, _dict[slug])
只需在 return 語句下面添加這個
添加回答
舉報