Python多層字典取值


#! /usr/bin/python
# coding:utf-8 
""" 
@author:Bingo.he 
@file: get_target_value.py 
@time: 2017/12/22 
"""
def get_target_value(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
    else:
        for value in dic.values():  # 傳入數據不符合則對其value值進行遍歷
            if isinstance(value, dict):
                get_target_value(key, value, tmp_list)  # 傳入數據的value值是字典,則直接調用自身
            elif isinstance(value, (list, tuple)):
                _get_value(key, value, tmp_list)  # 傳入數據的value值是列表或者元組,則調用_get_value
    return tmp_list


def _get_value(key, val, tmp_list):
    for val_ in val:
        if isinstance(val_, dict):  
            get_target_value(key, val_, tmp_list)  # 傳入數據的value值是字典,則調用get_target_value
        elif isinstance(val_, (list, tuple)):
            _get_value(key, val_, tmp_list)   # 傳入數據的value值是列表或者元組,則調用自身

不好意思,這篇文章也是抄的

      正所謂抄襲一時爽,一直抄一直爽,哈哈哈

           講究一個資源共享,知識共享,知識不是用來賣錢的,是用來傳承的

 

原文地址:https://www.cnblogs.com/Detector/p/8085460.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM