更好的方法迭代到python中的字典,以避免许多嵌套的for循环

有没有更好的方法迭代到我的字典数据而不使用3嵌套for循环,就像我现在正在做的给出下面的数据?顺便说一下,我正在使用python 2.6.

data = {'08132012': 
           {
            'id01': [{'code': '02343','status': 'P'},{'code': '03343','status': 'F'}],
            'id02': [{'code': '18141','status': 'F'},{'code': '07777','status': 'F'}]
           }
        }   

这是3 for for循环代码:

  for date in data:
      for id in data[date]:
          for trans in data[date][id]:
              print "Date: %s" % date
              print "Processing id: %s" % id
              print trans['code']
              print trans['status']

              //query to database

已编辑:有效数据值

最佳答案
鉴于数据的嵌套特性,我认为没有办法避免某些嵌套循环.

但是,您可以通过为数据编写flattening生成器来避免嵌套大部分程序逻辑,如下所示:

def flatten(data):
    for date in data:
        for id in data[date]:
            for trans in data[date][id]:
                yield (date, id, trans)

def process(data):
    for date, id, trans in flatten(data):
        # do stuff with date, id, trans

转载注明原文:更好的方法迭代到python中的字典,以避免许多嵌套的for循环 - 代码日志