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 调用VC++的动态链接库(DLL)
Sep 06 Python
python求众数问题实例
Sep 26 Python
Python数据结构之翻转链表
Feb 25 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
python模块smtplib学习
May 22 Python
python实现机器学习之多元线性回归
Sep 06 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 Python
python 实现德洛内三角剖分的操作
Apr 22 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数据采集的详解
2013/06/02 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
PHP7新功能总结
2019/04/14 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
python访问纯真IP数据库的代码
2011/05/19 Python
更改Python命令行交互提示符的方法
2015/01/14 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
Django实现学员管理系统
2019/02/26 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
python自动化测试无法启动谷歌浏览器问题
2019/10/10 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
python3.4中清屏的处理方法
2020/07/06 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
如何写好优秀的创业计划书
2014/01/30 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers