def get_json_value_by_key(self, in_json, target_key, results=[]): """ 根據key值讀取對應的value值 :param in_json:傳入的json :param target_key: 目標key值 :param results: :return: """ if isinstance(in_json, dict): # 如果輸入數據的格式為dict for key in in_json.keys(): # 循環獲取key data = in_json[key] self.get_json_value_by_key(data, target_key, results=results) # 回歸當前key對於的value if key == target_key: # 如果當前key與目標key相同就將當前key的value添加到輸出列表 results.append(data) elif isinstance(in_json, list) or isinstance(in_json, tuple): # 如果輸入數據格式為list或者tuple for data in in_json: # 循環當前列表 self.get_json_value_by_key(data, target_key, results=results) # 回歸列表的當前的元素 return results
如果傳入的json為string 的話,需要將string進行eval轉換為字典后再進行取值