Python変換辞書はオブジェクトとなり、オブジェクト属性インスタンスに「.」でアクセスできます。
余計なことを言わないで、コードを見てください。
機能
オブジェクトの属性と属性値を抽出し、戻り値はdictorry辞書タイプです。
構文
vars(object)
実例
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()関数:辞書の種類でオブジェクトの属性と属性値を抽出します。機能
オブジェクトの属性と属性値を抽出し、戻り値はdictorry辞書タイプです。
構文
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変換辞書が対象となり、対象属性の例に「.」を使ってアクセスできるようになりました。つまり、小編集が皆さんに共有しているすべての内容です。参考にしてもらいたいです。どうぞよろしくお願いします。