python字典无限遍历,,#无限遍历dict,
python字典无限遍历,,#无限遍历dict,
#无限遍历dict,通过key获取value,嵌套字典存在多个相同的key,可获取多个key
class getValues(object):
def __init__(self):
pass
#无限遍历dict,通过key获取value,嵌套字典存在多个相同的key,可获取多个key
def get_target_value(self,key, dic, tmp_list):
"""
:param key: 目标key值
:param dic: JSON数据
:param tmp_list: 用于存储获取的数据
:return: list
"""
if not isinstance(dic, dict) or not isinstance(tmp_list, list): # 对传入数据进行格式校验
return ‘argv[1] not an dict or argv[-1] not an list ‘
if key in dic.keys():
tmp_list.append(dic[key]) # 传入数据存在则存入tmp_list
for val in dic.values():
if isinstance(val, dict):
self.get_target_value(key, val, tmp_list) # 传入数据的value值是字典,则直接调用自身
elif isinstance(val, (list, tuple)):
self.get_value(key, val, tmp_list) # 传入数据的value值是列表或者元组,则调用get_value
else:
for value in dic.values(): # 传入数据不符合则对其value值进行遍历
if isinstance(value, dict):
self.get_target_value(key, value, tmp_list) # 传入数据的value值是字典,则直接调用自身
elif isinstance(value, (list, tuple)):
self.get_value(key, value, tmp_list) # 传入数据的value值是列表或者元组,则调用get_value
return tmp_list
#循环判断是否需要遍历value,get_target_value子方法
def get_value(self,key, val, tmp_list):
for val_ in val:
if isinstance(val_, dict):
self.get_target_value(key, val_, tmp_list) # 传入数据的value值是字典,则调用get_target_value
elif isinstance(val_, (list, tuple)):
self.get_value(key, val_, tmp_list) # 传入数据的value值是列表或者元组,则调用自身
python字典无限遍历
相关内容
- python学习笔记——线程threading,,1 线程thread
- Python图像处理(6):分离土壤与植物,,快乐虾http://
- Python2.7.3 Tkinter Entry(文本框) 说明,,Python学习记录
- Python中os.mkdir()与os.makedirs()的区别,,一、代码#-*-co
- 菜鸟的python学习之路,,一,编码python
- python,,try:#大的尝试b
- python 条件语句简洁写法,,今天遇到了一种条件语
- python占位符%s,%d,%r,%f,,conn, clie
- Python 城市列表,,要求:用户输入河北,
- 菜鸟学习python笔记,,1.模块:三种调用方
评论关闭