通过Python 2.6上的defaultdict的defaultdict进行Iter

通过Python 2.6上的defaultdict的defaultdict进行Iter,python,python-2.6,defaultdict,Python,Python 2.6,Defaultdict,为了获得Python访问日志中不同URL的首次失败请求的数量,我必须以以下方式创建defaultdict的defaultdict: apache_status_dict = defaultdict(lambda : defaultdict(int)) 我使用apachelog解析器计算失败请求的数量: for index, line in enumerate(open(path+aFile)): if int(str(data['%>s'])[0]) == 4 or int

为了获得Python访问日志中不同URL的首次失败请求的数量,我必须以以下方式创建defaultdict的defaultdict:

apache_status_dict = defaultdict(lambda : defaultdict(int))
我使用apachelog解析器计算失败请求的数量:

for index, line in enumerate(open(path+aFile)):    
   if int(str(data['%>s'])[0]) == 4 or int(str(data['%>s'])[0]) == 5:
        apache_status_dict[data['%{Referer}i']][data['%r']] += 1
我正在使用的服务器已经安装了Python2.6,无法更新它。那么,有没有办法在我的代码中创建类似的内容:

for url in apache_status_dict:
  for req in url:
     <code...>
apache_status_dict中url的
:
对于url中的请求:

任何帮助或建议都将不胜感激

您始终可以遍历
defaultdict
项:

d = defaultdict(lambda: defaultdict(int))
for i in d.items():
   # do something

好的,但是我如何遍历d.items()的每一项呢?如果您有dict like
[('url://foo.com“,[呃,呃,好的],('url://bar.org“,[ok,ok,ok])]
,然后您应该像
那样为url解包,状态为d.items()
:事实上,我想知道每个请求和url的失败请求总数。谢谢你的回答PYPL的回答正是我想要的这正是我想要的。非常感谢。
for url in apache_status_dict.keys():
  for req in apache_status_dict[url]:
      print apache_status_dict[url][req]