我有一本字典:
d = {'time': {36.0: 'mo'}, 'amount': {200.0: '$'}}
每个键(例如“时间”)只有一个值(例如{36.0'mo'})
我想通过以下方式访问36.0
result = d.time
和200.0做
result = d.amount
我该怎么做呢?到目前为止,我有:
class Bunch(object):
def __init__(self, adict):
self.__dict__.update(adict)
x = Bunch(d)
print x.time
产生{36.0:'mo'}而不是36.0。
最佳答案
在确保数据键和dict
方法之间没有名称冲突之后,我将__getattr__
子类化并覆盖dict
。
d = {'time': {36.0: 'mo'}, 'amount': {200.0: '$'}}
class Bunch(dict):
def __getattr__(self, attr):
try:
val = self[attr]
return next(iter(val))
except KeyError:
raise AttributeError(attr)
x = Bunch(d)
x.time # 36.0
关于python - 用点表示法获取内部值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37926809/