Unexpected KeyError when using defaultdict in Python 3.9 with nested dictionary structures
I'm integrating two systems and I'm trying to implement I'm relatively new to this, so bear with me. I'm working with a `defaultdict` from the `collections` module in Python 3.9, and I'm trying to build a nested dictionary structure for storing user activity logs. I expected that using `defaultdict` would handle missing keys gracefully, but I'm running into a `KeyError` when I try to access a nested key that should be created automatically. Here's a simplified version of my code: ```python from collections import defaultdict activity_log = defaultdict(lambda: defaultdict(list)) # Simulating user activities activity_log['user1']['login'].append('2023-10-01 10:00') activity_log['user1']['logout'].append('2023-10-01 15:00') # This works fine, but when I try to access a key that hasn't been set: try: print(activity_log['user1']['view']) # This should create the key, but it raises KeyError except KeyError as e: print(f"KeyError: {e}") ``` I was under the impression that accessing a key in a `defaultdict` would automatically initialize it, yet it seems that nested keys don't behave the same way. I also tried initializing the nested dictionary separately, but that added unnecessary complexity. Am I missing something in how `defaultdict` works, or is there a different approach I should use for creating the nested structure without working with `KeyError`? Any insights or best practices would be greatly appreciated! For context: I'm using Python on macOS. Am I missing something obvious? I'm coming from a different tech stack and learning Python. Any feedback is welcome! Thanks for any help you can provide! My development environment is CentOS. Am I missing something obvious?