我得到一个多级 dict 对象,我必须处理它。多级我的意思是顶级字典有一些以字典为值的键。
例如
{'l1key1' : 'value1'
'l1key2' : {
'l2key1': 'something'
'l2key2': {
'l3key1': 'something'
'l3key2': 'something else'
}
}
'l1key3' : 'some other value'
}
实际的字典很大。它有大约 10 多个键和 4 个级别。有时可能会丢失一些可选键。
我制作了类来保持代码的组织性。例如
Class Level3():
def __init__(self, l3dict):
if not l3dict:
self.exists = False
else:
self.exists = True
self.l3key1 = l3dict.get('l3key1')
self.l3key2 = l3dict.get('l3key2')
Class Level2():
def __init__(self, l2dict):
if not l2dict:
self.exists = False
else:
self.exists = True
self.l2key1 = l2dict.get('l2key1')
self.l2key2 = Level3(l3dict.get('l2key2'))
Class Level1():
def __init__(self, mydict):
self.l1key1 = mydict.get('l1key1')
self.l1key2 = Level2(mydict.get('l1key2'))
self.l1key3 = mydict.get('l1key3')
#usage
mydict = json.loads(thejson) #the json I am getting as input
myobject = Level1(mydict)
我的问题是我应该直接在我的脚本中使用字典而不是创建类吗?
执行时间短很重要。从 dict 初始化类会使其变慢吗?
编辑:: 我计时了。类的初始化平均需要 80 微秒,应用程序必须在 250 毫秒内完成所有处理。我现在必须查看处理所花费的时间,以确定我是否可以承受 80 微秒的时间。
谢谢你的答案。我还将使用 Cython 来处理数据。