递归
def get_value_from_dict(key, tdict):
"""
从Json中获取key值,
param key:
param tdict:字典
param tem_list:
return:
"""
#if not isinstance(tdict, dict):
# return tdict + "is not dict"
if key in tdict.keys():
print(1)
return tdict[key]
else:
for value in tdict.values():
if isinstance(value, dict):
print(2,value)
tmp = get_value_from_dict(key, value)
print('tmp',tmp)
if tmp == None:
continue
else:
return get_value_from_dict(key, value)
elif isinstance(value, (list, tuple)):
print(3)
tmp = get_value_from_list(key, value)
if tmp == None:
continue
else:
return get_value_from_list(key, value)
return None
def get_value_from_list(key, tlist):
"""
从list或tuple中查找key的value值
:param key:
:param tdict:
:param tem_list:
:return:
"""
for value in tlist:
if isinstance(value, (list, tuple)):
print(4)
tmp = get_value_from_list(key,value)
if tmp == None:
continue
else:
return get_value_from_list(key,value)
elif isinstance(value, dict):
print(5)
tmp = get_value_from_dict(key, value)
if tmp == None:
continue
else:
return get_value_from_dict(key, value)
return None
data = {'success': True, 'id': 'WF2020040217390412121390', 'result_desc': {'ANTIFRAUD_MODEL': {'6cddcf68e3a68b09': {'scorecard_reason_code': '申贷平台数变化率:5|关联手机设备数变化率:4|网贷平台绑卡事件数变化率:2|关联手机归属地变化率:2|关联社交账号数变化率:1|身份信息', 'model_version': '5', 'antifraud_model_score': 77}}, 'ANTIFRAUD': {'final_score': 80, 'risk_items': [{'rule_id': 5930275, 'policy_score': 80, 'score': 80, 'policy_mode': 'Weighted', 'decision': 'Accept', 'policy_decision': 'Reject', 'policy_name': '反欺诈模型智察分', 'risk_name': '智察分大于等于60分'}, {'rule_id': 5930097, 'policy_score': 5, 'score': 5, 'policy_mode': 'Weighted', 'decision': 'Accept', 'policy_decision': 'Accept', 'policy_name': '反欺诈规则', 'risk_name': '7天内身份证或手机号申请次数过多', 'risk_detail': [{'frequency_detail_list': [{'note': '7天内手机号申请次数', 'dim_type': 'accountMobile', 'count': '5', 'detail': '7天内手机号申请次数:5'}], 'type': 'frequency_detail'}]}], 'final_decision': 'REJECT'}}}
get_value_from_dict('detail',data)
注意两函数中这个部分

posted on 2020-04-13 21:26 静静的白桦林_andy 阅读(228) 评论(0) 收藏 举报
浙公网安备 33010602011771号