【python】多维/嵌套字典数据无限遍历,获取json返回结果

2018-09-19  本文已影响0人  GovS_777

该方法是获取嵌套的json key值集合。 若需要获取所有json嵌套的key,value值,修改对应return即可。

self.key_list = []
def get_dict_allkeys(self, dict_a):
        """
        多维/嵌套字典数据无限遍历,获取json返回结果的所有key值集合
        :param dict_a: 
        :return: key_list
        """
        if isinstance(dict_a, dict):  # 使用isinstance检测数据类型
            for x in range(len(dict_a)):
                temp_key = dict_a.keys()[x]
                temp_value = dict_a[temp_key]
                self.key_list.append(temp_key)
                self.get_dict_allkeys(temp_value)  # 自我调用实现无限遍历
        elif isinstance(dict_a, list):
            for k in dict_a:
                if isinstance(k, dict):
                    for x in range(len(k)):
                        temp_key = k.keys()[x]
                        temp_value = k[temp_key]
                        self.key_list.append(temp_key)
                        self.get_dict_allkeys(temp_value)
        return self.key_list       

# 测试
dict01 = {"a": 1, "b": {"kk": {"nn": 111, "pp": "ppoii"}, "yy": "123aa", "uu": "777aa"},
              "c": [{"a": 1, "b": 2}, {"a": 3, "b": 4}, {"a": 5, "b": 6}]}
get_dict_allkeys(dict01)

# 输出
['a', 'c', 'a', 'b', 'a', 'b', 'a', 'b', 'b', 'kk', 'pp', 'nn', 'yy', 'uu']

上一篇下一篇

猜你喜欢

热点阅读