Convert nested Python dict to object?

后端 未结 30 2479
时光取名叫无心
时光取名叫无心 2020-11-22 09:28

I\'m searching for an elegant way to get data using attribute access on a dict with some nested dicts and lists (i.e. javascript-style object syntax).

For example:

30条回答
  •  深忆病人
    2020-11-22 10:07

    class Struct(object):
        """Comment removed"""
        def __init__(self, data):
            for name, value in data.iteritems():
                setattr(self, name, self._wrap(value))
    
        def _wrap(self, value):
            if isinstance(value, (tuple, list, set, frozenset)): 
                return type(value)([self._wrap(v) for v in value])
            else:
                return Struct(value) if isinstance(value, dict) else value
    

    Can be used with any sequence/dict/value structure of any depth.

提交回复
热议问题