zoukankan      html  css  js  c++  java
  • python3循环遍历嵌套字典替换指定值

    目标:循环遍历多层嵌套的字典,找到指定的值,并将对应键的值替换成想要的值,最后输出替换后的字典。

    (实例中的需求: 找到字典中的 “需要被替换的值” 这个值,然后替换成 “需要替换的值+++”。)

    def get_targe_value(request_body):
        # 循环字典,获取键、值
        for key, values in request_body.items():
            # 判断值的type类型,如果是list,调用get_list() 函数,
            if type(values) == list:
                get_list(values)
            # 如果是字典,调用自身
            elif type(values) == dict:
                get_targe_value(values)
            # 如果值不是list且是需要被替换的,就替换掉
            elif type(values) != list and values == "需要被替换的值":
                    request_body[key] = "需要替换的值+++"
            else:
                pass
    
    def get_list(values):
        rustle = values[0]
        if type(rustle) == list:
            get_list(values)
        else:
            get_targe_value(rustle)
    
    
    if __name__ == '__main__':
        # 实例
        request_body = {"name": "小明",
                        "orderon": "0001",
                        "lists":
                        [
                            {
                            "ordername": "需要被替换的值",
                            "age": "85",
                            "prangede":
                            [
                                {
                                "sku_name": "sku_1",
                                "sku_id": "需要被替换的值",
                                "sku_x": "嘻哈"
                                }
                            ]
                        }
                    ]
                }
    
        get_targe_value(request_body)
        print(request_body)

    通过两个函数相互调用,完成对参数的处理,完美解决,如果字典中嵌套还有其他类型的type,可以直接在里边加,代码主体就这样了。

    替换后的结果:

  • 相关阅读:
    9_4前端(2)css
    9_3前端(1)
    8_23mysql的其他内容(视图等)
    8_22数据库(navicat操作)
    8_21表的查询
    8_20数据库3外键
    E. Pavel and Triangles dp+问题转化
    C. Grid game 思维+问题转化
    B. Game with string 思维问题转化
    D. Game with modulo 交互题(取余(膜)性质)附带a mod b<a/2证明
  • 原文地址:https://www.cnblogs.com/Zhan-W/p/13323994.html
Copyright © 2011-2022 走看看