代码如下
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)
测试结果: