首页 > 编程语言 >python 字典嵌套(列表及字典)取值/统计方案

python 字典嵌套(列表及字典)取值/统计方案

时间:2023-10-09 17:35:40浏览次数:40  
标签:python self 嵌套 dict key demand 参数 data 字典

class DictionaryProcessingSet:
    result_dict = {}

    def get_key(self, data: dict, demand: list, countKey: str = ''):
        """
        :param data: 入参数据
        :param demand: 你的需求参数
        :param countKey: 参数统计次数
        :return:
        """
        if isinstance(data, dict):  # 判断入参数据是否是dict类型
            for demand_i in demand:  # 根据你的需求参数遍历
                if demand_i in str(data):  # 判断需求参数是否存在与入参数据中
                    for key in data.keys():  # 根据入参数据key进行遍历
                        if demand_i == key:  # 如果入参数据得key=需求参数那就输出
                            self.result_dict[key] = data[key]
                            break
                        elif isinstance(data[key], dict):  # 如果最外层key找不到,那就根据value是否是dict进入内层寻找
                            self.zero_time_variable = []  # 储存当前需求参数
                            if demand_i in str(data[key]):  # 根据需求参数判断是否存在于value得dict中
                                self.zero_time_variable.append(demand_i)
                                self.get_key(data[key], self.zero_time_variable,countKey)  # 拿到内层得dict进行新一轮得循环
                        elif isinstance(data[key], (tuple, list)):  # 判断当前key值是否是dict或者tuple
                            for data_i in data[key]:  # 循环list
                                if demand_i in str(data_i) and isinstance(data_i, dict):  # 判断需求参数是否存在且内部类型是dict
                                    self.get_key(data_i, self.zero_time_variable,countKey)  # 拿到内层得dict进行新一轮得循环

                else:
                    self.result_dict[demand_i] = '未查询到该key'  # 需求参数不在入参数据中
        countName = countKey + "共计"
        self.result_dict[countName] = str(data).count(countKey)  # 统计某个参数在当前入参数据中出现得次数
        return self.result_dict


dictData = {
    "name": "John",
    "age": 30,
    "wife": {
        "firstWife": "王丽",
        "secondWife": "李银",
    },
    "child": {
        "boy": '赵明',
        "girl": '赵琴',
        "wife": '小三',
        "sunDynasty": {
            "sunBoy": '赵鹏鹏',
            "sunGirl": '赵茵茵',
            "greatGrandson": [
                {"greatSunBoy": '赵阳'},
                {"greatSunGirl": '赵雨'},
            ]
        }
    }
}
"""如何知道某一个值是否存在变量中"""
seek = DictionaryProcessingSet().get_key(dictData, ['greatSunGirl', 'girl', 'age', 'firstWife', 'wife', '我不在哦', 'sunGirl'], 'wife')
print(seek)
"""
结果:{'greatSunGirl': '赵雨', 'wife共计': 2, 'girl': '赵琴', 'age': 30, 'firstWife': '王丽', 'wife': {'firstWife': '王丽', 'secondWife': '李银'}, '我不在哦': '未查询到该key', 'sunGirl': '赵茵茵'}
"""

标签:python,self,嵌套,dict,key,demand,参数,data,字典
From: https://www.cnblogs.com/wyj497022944/p/17752261.html

相关文章

  • Python 时间_Datetime_Module
    Datetime_Module作用:处理日期和时间一、Datetime模块中的类datetime:表示日期和时间,可以处理年、月、日、时、分、秒。date:表示日期,主要用于处理年、月、日。time:表示时间,主要用于处理时、分、秒。timedelta:表示时间间隔,即两个时间点的间隔,主要用于做时间加减。tzinfo:时区......
  • python如何配置文件路径
    1、获取被调用函数所在的模块文件名,然后获取其路径。2、与配置文件所在的路径进行比较,基于模块文件路径和父级路径的配置文件所在的相对路径,获得配置文件的绝对路径。co_filepath=sys._getframe().f_code.co_filenamehead,tail=os.path.split(co_filepath)conf_filepa......
  • Python生成随机整数数组的实用方法
    在编程中,生成随机整数数组是一项非常常见的任务。本文将介绍如何使用Python语言来生成随机整数数组,帮助读者掌握这一有用的编程技巧。通过实际的代码示例,我们将逐步指导读者完成生成随机整数数组的过程,并提供一些实际应用的建议。第一部分:了解随机数生成原理1.什么是随机数:-随机数......
  • Python_滑动窗口
    SQL中窗口函数常用窗口函数窗口函数主要分为了聚合、排序、分布、平移及首尾等类型1)聚合函数:sum()、count()、max()、min()、avg()2)排序函数:row_number()、rank()、dense_rank()3)分布函数:percent_rank()、cume_dist()4)平移函数:lead()、lag()5)首尾函数......
  • 7、Python语法入门之流程控制
    7、Python语法入门之流程控制转载: 7、Python语法入门之流程控制-知乎(zhihu.com)目录:引子分支结构什么是分支结构为什么要用分支结构如何使用分支结构if语法if应用案例循环结构什么是循环结构为什么要用循环结构如何使用循环结构while循环语......
  • 几个易错的python小知识点
    大家好,我是暴走の海鸽~本期整理了几个基础python防坑小常识,希望对大家有所帮助。1.type==object?执行以下代码的结果是什么:>>>isinstance(type,object)True>>>isinstance(object,type)True>>>isinstance(object,object)True>>>isinstance(type,type)True......
  • 笨办法学Python3 习题30 else 和 if
    1people=302cars=403trucks=1545ifcars>people:#下面同时为True,也只会运行第一个为True的块,另外两个优先级依次低于if6print("Weshouldtakethecars.")#第一个分支的块78elifcars<people:......
  • 笨办法学Python3 习题29 if 语句
    1people=202cats=303dogs=1545ifpeople<cats:6print("Toomanycats!Theworldisdoomed!")78ifpeople>cats:9print("Notmanycats!Theworldissaved!")1011ifpeople<dogs:12p......
  • Command "python setup.py egg_info" failed with error code 1
     D:\ProgramFiles\python_3_6_4>python-mpipinstall--upgradepipCacheentrydeserializationfailed,entryignoredCollectingpip Cacheentrydeserializationfailed,entryignored Downloadinghttps://files.pythonhosted.org/packages/a4/6d/6463d49a93......
  • 实验安装的python包
    pyaudio-- python3.6,pycharm可以安装pipinstallpyaudiopyqt5-- python3.6(slow)D:\ProgramFiles\python_3_6_4\Scripts>pipinstallpyqt5-ihttps://pypi.mirrors.ustc.edu.cn/simple/Collectingpyqt5 CouldnotfetchURLhttps://pypi.mirrors.ustc.edu.cn......