You can get away with a single hashed dict:
from types import SimpleNamespace
mydict = { "name": "moe", "age": 3, "test": {"name": "josh"} # wont work }
dotted = SimpleNamespace(*mydict)
print(dotted.name, dotted.age) # moe 3
from types import SimpleNamespace
mydict = { "name": "moe", "age": 3, "test": {"name": "josh"} # wont work }
dotted = SimpleNamespace(*mydict)
print(dotted.name, dotted.age) # moe 3