diff --git a/fastcore/xtras.py b/fastcore/xtras.py index e1dadb77..40111d2f 100644 --- a/fastcore/xtras.py +++ b/fastcore/xtras.py @@ -288,7 +288,7 @@ def _expand_import(node, mod, existing): # %% ../nbs/03_xtras.ipynb def dict2obj(d, list_func=L, dict_func=AttrDict): "Convert (possibly nested) dicts (or lists of dicts) to `AttrDict`" - if isinstance(d, (L,list)): return list_func(map(dict2obj, d)) + if isinstance(d, (L,list)): return list_func([dict2obj(v, list_func=list_func, dict_func=dict_func) for v in d]) if not isinstance(d, dict): return d return dict_func(**{k:dict2obj(v, list_func=list_func, dict_func=dict_func) for k,v in d.items()}) diff --git a/nbs/03_xtras.ipynb b/nbs/03_xtras.ipynb index 40882d13..d11a3b83 100644 --- a/nbs/03_xtras.ipynb +++ b/nbs/03_xtras.ipynb @@ -949,7 +949,7 @@ "#|export\n", "def dict2obj(d, list_func=L, dict_func=AttrDict):\n", " \"Convert (possibly nested) dicts (or lists of dicts) to `AttrDict`\"\n", - " if isinstance(d, (L,list)): return list_func(map(dict2obj, d))\n", + " if isinstance(d, (L,list)): return list_func([dict2obj(v, list_func=list_func, dict_func=dict_func) for v in d])\n", " if not isinstance(d, dict): return d\n", " return dict_func(**{k:dict2obj(v, list_func=list_func, dict_func=dict_func) for k,v in d.items()})" ]