JSON 字典转对象
网上搜了一圈,似乎没有字典转对象的相关内容这个东西。但能通过重载 getattr来重载获取属性的方法。利用这个思路,我编写了一个转换类能将字典转换为对象。
#coding=utf-8 ''' Created on 2016-5-8 @author: 杨同峰 ''' import time class DictObj(object): def __init__(self,map): self.map = map def __setattr__(self, name, value): if name == 'map': object.__setattr__(self, name, value) return; print 'set attr called ',name,value self.map[name] = value def __getattr__(self,name): v = self.map[name] if isinstance(v,(dict)): return DictObj(v) if isinstance(v, (list)): r = [] for i in v: r.append(DictObj(i)) return r else: return self.map[name]; def __getitem__(self,name): return self.map[name] if __name__ == '__main__': m = {'haha':{'a':55},'bb':[{'c':32,'d':45},{'c':22,'d':56}]} book = DictObj(m); print book.bb[0].c
原文地址:https://www.jianshu.com/p/d652840d6fc7
相关推荐
-
python3–函数(函数,全局变量和局部变量,递归函数) python基础
2019-5-16
-
简析Python中的四种队列 python基础
2019-2-24
-
Python使用openpyxl读写excel文件 python基础
2019-8-25
-
挑战自己|LeetCode 刷题开胃菜 python基础
2019-8-25
-
python小白问题集合 python基础
2019-8-26
-
Python urllib简单使用 python基础
2019-5-20
-
堆排序的Python实现(附详细过程图和讲解) python基础
2019-1-29
-
关于MicroPython是否可以真正用在产品开发的讨论 python基础
2020-7-4
-
如何让自己的密码更安全? python基础
2019-8-25
-
爬虫常用库介绍 python基础
2020-6-17