python中字典是几维数据_Python实现多维嵌套JSON、字典、列表、元组的JSON中获取数据...

1 #!/usr/bin/python

2 #coding:utf-8

3

4 importjson5

6 defisjson(myjson):7 """判断是否为json对象"""

8 try:9 json_object =json.loads(myjson)10 exceptException as e:11 returnFalse12 returnTrue13

14

15 defget_target_value(key, dic, tmp_list):16 """

17 :param key: 目标key值18 :param dic: JSON数据19 :param tmp_list: 用于存储获取的数据20 :return: list21 """

22 if not isinstance(dic, dict) or not isinstance(tmp_list, list): #对传入数据进行格式校验

23 return 'argv[1] not an dict or argv[-1] not an list'

24

25 if key indic.keys():26 tmp_list.append(dic[key]) #传入数据存在则存入tmp_list

27 else:28 for value in dic.values(): #传入数据不符合则对其value值进行遍历

29 ifisinstance(value, dict):30 get_target_value(key, value, tmp_list) #传入数据的value值是字典,则直接调用自身

31 elifisinstance(value, (list, tuple)):32 _get_value(key, value, tmp_list) #传入数据的value值是列表或者元组,则调用_get_value

33 elifisjson(value):34 value1 =json.loads(value)35 get_target_value(key, value1, tmp_list) #传入数据的value值是json字符串,则装载成python对象,并调用自身

36 returntmp_list37

38

39 def_get_value(key, val, tmp_list):40 for val_ inval:41 ifisinstance(val_, dict):42 get_target_value(key, val_, tmp_list) #传入数据的value值是字典,则调用get_target_value

43 elifisinstance(val_, (list, tuple)):44 _get_value(key, val_, tmp_list) #传入数据的value值是列表或者元组,则调用自身

45 elifisjson(val_):46 value2 =json.loads(val_)47 get_target_value(key, value2, tmp_list) #传入数据的value值是json字符串,则装载成python对象,并调用get_target_value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值