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基础教程之python消息摘要算法使用示例
Feb 10 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
Python基于PycURL实现POST的方法
Jul 25 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
Python之批量创建文件的实例讲解
May 10 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
python验证身份证信息实例代码
May 06 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
python scatter函数用法实例详解
Feb 11 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
有关php运算符的知识大全
2011/11/03 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
django反向解析和正向解析的方式
2018/06/05 Python
Random 在 Python 中的使用方法
2018/08/09 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
opencv 阈值分割的具体使用
2020/07/08 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
精神文明建设标语
2014/06/16 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android