我正在寻找一种优雅的方式来使用带有一些嵌套字典和列表的字典(即 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 的对象样式的好方法是什么?
原文由 Marc 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新: 在 Python 2.6 及更高版本中,请考虑
namedtuple
数据结构是否适合您的需求:替代方案(原始答案内容)是:
然后,您可以使用: