我正在寻找一种优雅的方法来获取数据,该方法使用dict上的属性访问和一些嵌套的dict和list(即javascript样式的对象语法)。
例如:
>>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
应以这种方式访问:
>>> x = dict2obj(d)
>>> x.a
1
>>> x.b.c
2
>>> x.d[1].foo
bar
我认为,如果没有递归,这是不可能的,但是有什么方法可以获得dicts的对象样式呢?
Tags:
更新:在Python2.6及更高版本中,请考虑^{} 数据结构是否适合您的需要:
备选方案(原始答案内容)是:
然后,您可以使用:
令人惊讶的是没有人提到Bunch。这个库专门用于提供对dict对象的属性样式访问,并完全按照OP的要求执行。演示:
Python 3库在https://github.com/Infinidat/munch上可用-信用卡转到codyzu
相关问题 更多 >
编程相关推荐