diff options
author | Rasmus Luha <rasmus.luha@ut.ee> | 2025-05-14 23:42:05 +0300 |
---|---|---|
committer | Rasmus Luha <rasmus.luha@ut.ee> | 2025-05-14 23:42:05 +0300 |
commit | 0f275b1bf3e24f7fb62e0cf8e2abe5eb8c45d929 (patch) | |
tree | 3d28dfcf26fa9e46b18ce8d693bbe4e5489b1b0e /common/core.py | |
parent | 7bfcf9a86553f7158673758cd500eece8e9cf132 (diff) |
Revert "cleanup, comments for common module"
This reverts commit 0cdd22fd88b00bc939eac7824bb1063f675cba84.
Diffstat (limited to 'common/core.py')
-rw-r--r-- | common/core.py | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/common/core.py b/common/core.py index e52cedd..f47a8b5 100644 --- a/common/core.py +++ b/common/core.py @@ -27,6 +27,7 @@ def ask_digit_input(max_index): print(f" Number ei kuulu valikusse. Palun vali number vahemikus 0-{max_index}.") +## Checks if api url is correct, if so then returns the json def is_app_url_correct(api_url, needs_auth, username,passwd): """ Checks if api url is correct, if so then returns the json @@ -54,6 +55,8 @@ def is_app_url_correct(api_url, needs_auth, username,passwd): return None, False +## TODO - add list level support with porcessors etc +## Asks the user json item to extract and returns it as dict item-value pair, where item is name and value json path def inspect_json_top_level(json_data): """ Asks the user json item to extract and returns it as dict item-value pair, where item is name and value json path @@ -93,10 +96,60 @@ def inspect_json_top_level(json_data): + + +###### Other option ########## + +def inspect_json_top_level_test(json_data, has_list=False): + path = "" + last_key = "value" #Placeholder + + while True: + print(json.dumps(json_data, indent=2)) + print("\nVali json võti või indeks millest soovid väärtuse andmekonveieriga ekstrakteerida\n") + + if isinstance(json_data, dict): + keys = list(json_data.keys()) + for index, key in enumerate(keys): + value = json_data[key] + value_type = type(value).__name__ + suggestion = "SplitJson" if isinstance(value, list) else "EvaluateJsonPath" + print(f" [{index}] {key} ({value_type}) → {suggestion}") + + selected_index = ask_digit_input(len(keys) - 1) + selected_key = keys[selected_index] + selected_value = json_data[selected_key] + path += "." + selected_key + last_key = selected_key + + elif isinstance(json_data, list): + has_list = True + for index, item in enumerate(json_data): + item_type = type(item).__name__ + print(f" [{index}] [{item_type}]") + + selected_index = ask_digit_input(len(json_data) - 1) + selected_value = json_data[selected_index] + path += f"[{selected_index}]" + last_key = str(selected_index) + + else: + # Primitive value, nothing to dive into + print(f"\nLõppväärtus: {json_data}") + return {last_key: path} + + + + if isinstance(selected_value, (dict, list)): + json_data = selected_value + else: + #print(f"\nValitud väärtus: '{selected_value}'") + print(f"\nValitud väärtus: '{path}'") + return {last_key: path} + + def get_data_values(): - """ - Interaktiivse moodi jaoks. Võimaldab kasutajal parsida API json vastust, et saada teada soovitud filtreeritavad andmeväljad. - """ + chosen_json_values = {} ##Getting API url and json values |