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 编程之twisted详解及简单实例
Jan 28 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python针对excel的操作技巧
Mar 13 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
Python importlib动态导入模块实现代码
Apr 16 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
numpy数据类型dtype转换实现
Apr 24 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
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php获取apk包信息的方法
2014/08/15 PHP
php微信支付之APP支付方法
2015/03/04 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
微信小程序数据存储与取值详解
2018/01/30 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python中将字典转换为列表的方法
2016/09/21 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python实现快速计算词频功能示例
2018/06/25 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
python读取图片任意范围区域
2019/01/23 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
2021/02/16 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
证婚人经典证婚词
2014/01/09 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
服务整改报告
2014/11/06 职场文书
小学教师教育随笔
2015/08/14 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript