python多级字典_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值是列表或者元组,则调用自身

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

正所谓抄袭一时爽,一直抄一直爽,哈哈哈

讲究一个资源共享,知识共享,知识不是用来卖钱的,是用来传承的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值