Python转换字典成为对象,可以用"."方式访问对象属性实例


Posted in Python onMay 11, 2020

我就废话不多说了,大家还是直接看代码吧!

database = [
  {
    "name": "18D_Block",
    "xcc":{  
      "component": {
        "core":[],
        "platform":[]
      },
    },
    "uefi":{  
      "component": {
        "core":[],
        "platform":[]
      },
    }
  }
]
class Dict(dict):
  __setattr__ = dict.__setitem__
  __getattr__ = dict.__getitem__
 
def dict_to_object(dictObj):
  if not isinstance(dictObj, dict):
    return dictObj
  inst=Dict()
  for k,v in dictObj.items():
    inst[k] = dict_to_object(v)
  return inst
# 转换字典成为对象,可以用"."方式访问对象属性
res = dict_to_object(database[0])
print res.name
print res.xcc
print res.xcc.component
print res.xcc.component.core

补充知识:[Python] 字典 vars()函数:以字典类型提取对象的属性和属性值

功能

提取对象的属性和属性值,返回值为dictionary字典类型。

语法

vars(object)

实例

>>>print(vars())
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}

>>> class Test:
...   a = 1
... 

>>> print(vars(Test))
{'a': 1, '__module__': '__main__', '__doc__': None}

>>> test = Test()
>>> print(vars(test))
{}

对于 x = 1,这样的一个赋值语句,我们在执行后,名称 x 引用到值 1。这就像字典一样,键引用值,当然,变量和所对应的值用的是个"不可见"的字典。我们可以使用 vars() 函数来返回这个字典:

>>> x = 1
>>> scope = vars()
>>> scope["x"]
1

以上这篇Python转换字典成为对象,可以用"."方式访问对象属性实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
Django框架中方法的访问和查找
Jul 15 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Python中正则表达式的用法总结
Feb 22 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
Python中22个万用公式的小结
Jul 21 Python
分享3个非常实用的 Python 模块
Mar 03 Python
Python3自定义json逐层解析器代码
May 11 #Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 #Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 #Python
Pycharm如何导入python文件及解决报错问题
May 10 #Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 #Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 #Python
python对接ihuyi实现短信验证码发送
May 10 #Python
You might like
常用的php对象类型判断
2008/08/27 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
js 字符串操作函数
2009/07/25 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
基于python实现简单日历
2018/07/28 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
蛋白质世界:Protein World
2017/11/23 全球购物
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
EJB的几种类型
2012/08/15 面试题
护士进修自我鉴定
2014/02/07 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
吨的认识教学反思
2014/04/27 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
工伤私了协议书范本
2014/11/24 职场文书
公务员考察材料范文
2014/12/23 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
货款欠条范本
2015/07/03 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript