I think the default here should be an actual empty dict rather than a string. (i.e.: self.configuration.get("print_settings", {}))