阅读Python 3.1中的更改,我发现了一些......意外的:
sys.version_info元组现在是一个命名元组:
我之前从未听说过命名元组,我认为元素可以用数字(如元组和列表)或键(如dicts)索引.我从没想过他们可以两种方式编入索引.
因此,我的问题是:
我正在寻找一种优雅的方法,使用一些嵌套的dicts和列表(即javascript样式的对象语法)在dict上使用属性访问来获取数据.
例如:
>>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Run Code Online (Sandbox Code Playgroud)
应该可以通过这种方式访问:
>>> x = dict2obj(d)
>>> x.a
1
>>> x.b.c
2
>>> x.d[1].foo
bar
Run Code Online (Sandbox Code Playgroud)
我认为,如果没有递归,这是不可能的,但是什么是获得dicts的对象样式的好方法?
如何通过点"."访问Python字典成员?
例如,mydict['val']我不想写作,而是写作mydict.val.
此外,我想以这种方式访问嵌套的dicts.例如
mydict.mydict2.val
Run Code Online (Sandbox Code Playgroud)
会参考
mydict = { 'mydict2': { 'val': ... } }
Run Code Online (Sandbox Code Playgroud) 我正在调用一个返回AttributeDict具有许多属性的API ,例如to和from.
要访问这些属性,我使用点表示法.例如,我使用object.to,并且工作正常.
当我尝试使用时object.from,我收到一个错误SyntaxError: invalid syntax.我认为这是因为fromPython中的关键字.
如果是这种情况,是否可以from使用点访问?现在,我正在使用object["from"],它正在工作,但与我的其余代码不匹配.
python ×4
dictionary ×2
keyword ×1
namedtuple ×1
nested ×1
object ×1
python-3.x ×1
syntax ×1
tuples ×1