Convert nested Python dict to object?

后端 未结 30 2463
时光取名叫无心
时光取名叫无心 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:12

    Here is another way to implement SilentGhost's original suggestion:

    def dict2obj(d):
      if isinstance(d, dict):
        n = {}
        for item in d:
          if isinstance(d[item], dict):
            n[item] = dict2obj(d[item])
          elif isinstance(d[item], (list, tuple)):
            n[item] = [dict2obj(elem) for elem in d[item]]
          else:
            n[item] = d[item]
        return type('obj_from_dict', (object,), n)
      else:
        return d
    

提交回复
热议问题