Python转换字典成为对象,可以用"."方式访问对象属性实例

作者:**华 时间:2021-06-01 09:01:50 

我就废话不多说了,大家还是直接看代码吧!


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

来源:https://blog.csdn.net/u010870545/article/details/82771669

标签:Python,转换,字典,对象
0
投稿

猜你喜欢

  • Pycharm2022最新版无法换源解决方法

    2023-02-09 20:51:55
  • 特殊字符、常规符号及其代码对照表

    2010-08-24 18:13:00
  • golang中值类型/指针类型的变量区别总结

    2023-09-02 15:07:11
  • python中import与from方法总结(推荐)

    2021-12-19 12:31:06
  • JavaScript 日期联动选择器

    2010-08-01 10:18:00
  • text-indent 隐藏文字时出现的 outline问题

    2007-12-02 17:31:00
  • Python冲顶大会 快来答题!

    2022-05-27 08:10:56
  • 基于Python实现文件分类器的示例代码

    2023-06-02 12:49:10
  • asp如何用SA-FileUp上传多个文件?

    2010-06-13 14:34:00
  • asp解决防止表单重复提交的方法

    2007-10-19 18:40:00
  • Python实现调用另一个路径下py文件中的函数方法总结

    2021-05-24 12:48:03
  • 网站tab导航的设计

    2008-11-10 12:36:00
  • 利用Python进行图像的加法,图像混合(附代码)

    2021-06-22 20:28:44
  • python实现计算器功能

    2021-02-06 09:45:23
  • Python+OpenCV实现六种常用图像特效

    2023-08-02 10:01:43
  • Python Matplotlib绘制箱线图boxplot()函数详解

    2021-03-09 11:16:07
  • oracle中110个常用函数介绍

    2023-07-09 03:46:20
  • python使用smtplib模块发送邮件

    2023-05-16 22:25:38
  • 检测远程文件是否存在

    2009-06-22 13:00:00
  • asp如何用数据库制作一个多用户版的计数器?

    2010-06-16 09:51:00
  • asp之家 网络编程 m.aspxhome.com