diff --git a/trial_json.py b/trial_json.py index d28a6958c0c6452e6f09e60982ea3f5a7c119820..cd55693b452af2ccbeba9288b44fdc31a59afaa0 100644 --- a/trial_json.py +++ b/trial_json.py @@ -7,13 +7,43 @@ Created on Thu May 5 17:27:38 2022 testfile for operating with json-files """ - +#%% import moduls import json +#%% define functions +def findkeys(node, kv): + ''' + https://stackoverflow.com/questions/9807634/find-all-occurrences-of-a-key-in-nested-dictionaries-and-lists + + Parameters + ---------- + node : TYPE + DESCRIPTION. + kv : TYPE + DESCRIPTION. + + Yields + ------ + TYPE + DESCRIPTION. + + ''' + if isinstance(node, list): + for i in node: + for x in findkeys(i, kv): + yield x + elif isinstance(node, dict): + if kv in node: + yield node[kv] + for j in node.values(): + for x in findkeys(j, kv): + yield x + +#%% main script with open("test_data.json","r+") as file: data = json.load(file) - print(len(data)) - print(type(data)) + #print(len(data)) + #print(type(data)) #print(data["Name"]) @@ -32,3 +62,7 @@ for i in a: print(type(attrs)) print(attrs) print(j) + + + +print(list(findkeys(data, 'KPI'))) \ No newline at end of file