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使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python去除字符串两端空格的方法
May 21 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 Python
详解Python中的分支和循环结构
Feb 11 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
Python自动化之UnitTest框架实战记录
Sep 08 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 db类库进行数据库操作
2009/03/19 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
phalcon框架使用指南
2016/02/23 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
Javascript 解疑
2009/11/11 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
Javascript实现打鼓效果
2021/01/29 Javascript
Python利用Django如何写restful api接口详解
2018/06/08 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
Flask之flask-session的具体使用
2018/07/26 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
我的求职计划书
2014/01/10 职场文书
企业整改报告范文
2014/11/08 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
Python学习之迭代器详解
2022/04/01 Python