我就废话不多说了,大家还是直接看代码吧!
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转换字典成为对象,可以用”.”方式访问对象属性实例就是小编分享给大家的全部内容了,希望能给大家一个参考。