python3 复杂数据 根据key名 直接提取所有符合要求的value值

代码如下  

def get_valuelist_by_key(cls, json_data, find_key):
    """根据find_key查询json_data中所有的value 返回所有满足条件的列表--深度遍历

    :param json_data: 匹配的json字符串,json_data必须为dict或者list
    :param find_key: key名
    :return: 多个匹配值
    """
    values_list = []

    def get_value_list(json, key):
        nonlocal values_list
        if isinstance(json, dict):
            for item, values in json.items():
                if str(item) == str(key):
                    values_list.append(str(json.get(item)))
                if isinstance(values, dict):
                    get_value_list(values, key=key)
                if isinstance(values, list):
                    get_value_list(values, key=key)
                else:
                    pass
        elif isinstance(json, list):
            for data in json:
                if isinstance(data, dict):
                    get_value_list(data, key)
        else:
            return []
        return values_list

    return get_value_list(json=json_data, key=find_key)

测试结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值