我有这样的字典:
d = {'item1': ('Hi', (150, 495)), 'item2': ('Hola', (590, 40))}
我希望尽可能递归地将其转换为object。我有一节课:
class Item:
def __init__(self,thetuple):
self.greeting=thetuple[0]
self.coordinate=thetuple[1]
所以我想要的是,应该有一个对象,例如item1,而item1.greeting是" Hi",item1.coordinate是(150,495)等。
我对各种解决方案,改进和想法持开放态度。感谢。
答案 0 :(得分:1)
您正在寻找collections.namedtuple
。
所以做这样的事情:
import collections
Item = collections.namedtuple('Item', ('greeting', 'coordinate'))
d = {'item1': ('Hi', (150, 495)), 'item2': ('Hola', (590, 40))}
new_d = {k: Item(*v) for k, v in d.items()}
# Now you can do
new_d['item1'].greeting == 'Hi'
new_d['item2'].coordinate == (590, 40)