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内置的字符串处理函数整理
Jan 29 Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
python散点图实例之随机漫步
Aug 27 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
python版DDOS攻击脚本
Jun 12 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Keras搭建自编码器操作
Jul 03 Python
Python 中面向接口编程
May 20 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中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python 的类、继承和多态详解
2017/07/16 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
Django密码系统实现过程详解
2019/07/19 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
经典c++面试题五
2014/12/17 面试题
收银员岗位职责
2014/02/07 职场文书
英文演讲稿开场白
2014/08/25 职场文书
历史博物馆观后感
2015/06/05 职场文书
交流会主持词
2015/07/02 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript