'''
@description: 遍歷整個字典,去除對應的value
is_end_tra 用來標記遞歸推出標誌
value_result 用來承接返回值
@param {type}
@return:
'''
is_end_tra = True
value_result = ""
def traverse_map(data,kval):
global is_end_tra
global value_result
if False == is_end_tra:
return value_result
if isinstance(data, dict):
for k, v in data.items():
traverse_map(v,kval)
elif isinstance(data, (list, tuple, set)):
for v in data:
traverse_map(v,kval)
else:
if data == kval:
is_end_tra = False
value_result = data
return value_result
return value_result
遞歸的嵌套,找到正確結果後,想要立即退出,使用return是不行的,return只是退出了當前的嵌套,他會一層一層的向外逐層退出,不能將結果正確返回,
正確的做法是使用全局變量,設置退出標誌,在函數的開頭,不進行其他的操作之前,如果滿足,則直接退出
'''
@description: 該函數是通過傳入filename,來查找id,然後返回,並且是單層的
@param {type}
@return:
'''
def traverse_map_dc(data,keyval):
counts = data['totalRows']
cont = data['cont']
for item in cont:
if keyval == item['filename'] and 0 == item['filetype']:
return item['id']
return ""
參考:https://blog.csdn.net/weixin_39374967/article/details/86104682
https://blog.csdn.net/lly1122334/article/details/103035060