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下如何让web元素的生成更简单的分析
Jul 17 Python
python3.3实现乘法表示例
Feb 07 Python
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
Python中max函数用于二维列表的实例
Apr 03 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
详解Django CAS 解决方案
Oct 30 Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 Python
关于python 的legend图例,参数使用说明
Apr 17 Python
Python竟然能剪辑视频
May 25 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
ajax+php控制所有后台函数调用
2015/07/15 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
python实现数通设备端口监控示例
2014/04/02 Python
跟老齐学Python之一个免费的实验室
2014/09/14 Python
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
python文件操作之目录遍历实例分析
2015/05/20 Python
Python模拟百度登录实例详解
2016/01/20 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
表彰先进集体通报
2014/01/12 职场文书
家长会邀请书
2014/01/25 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
MySQL分区路径子分区再分区
2022/04/13 MySQL
Python如何加载模型并查看网络
2022/07/15 Python