This is the clearest coding tutorial I've ever seen in my life. Liz you are awesome. Very high quality step by step break down of the problem and solution.
Nice tutorial, thanks! Have you got any tips if I want to only output specific keys in the json object? (Parameterised as a list) Eg json object: obj = {'key1' : {'key2': {'key3': 'value1', 'key4': 'value2' } } } When caling the flatten function: flatten_json( obj, ["key1.key2", "key3.key4"]) Desired output: { "key1.key2": "value1", "key3.key5": "value3" }
Here is the code that will work on all data structures def run_on_dict(data): for key, value in data.items(): if isinstance(value, dict): run_on_dict(value) elif isinstance(value, list): for element in value: if isinstance(element, (dict, list)): run_on_dict(element) else: print(f"{key}: {element}") else: print(f"{key}: {value}")