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 相关文章推荐
Python continue语句用法实例
Mar 11 Python
python中精确输出JSON浮点数的方法
Apr 18 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
python中字符串前面加r的作用
Jun 04 Python
Python如何实现文本转语音
Aug 08 Python
详解 Python 读写XML文件的实例
Aug 02 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
Python 日志logging模块用法简单示例
Oct 18 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
Python基于template实现字符串替换
Nov 27 Python
python openssl模块安装及用法
Dec 06 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
MYSQL环境变量设置方法
2007/01/15 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
python统计cpu利用率的方法
2015/06/02 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
使用Python设计一个代码统计工具
2018/04/04 Python
python中比较两个列表的实例方法
2019/07/04 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
《童年的发现》教学反思
2014/02/14 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
总经理岗位职责范本
2015/04/01 职场文书
公司员工管理制度
2015/08/04 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android