在 Python 2.6 上遍历 defaultdict 的 defaultdict

Iter through defaultdict of defaultdict on Python 2.6

为了从具有 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

我正在使用的服务器安装了 Python 2.6,但无法更新它。那么有没有办法在我的代码中做这样的事情:

for url in apache_status_dict:
  for req in url:
     <code...>

如有任何帮助或建议,我们将不胜感激!

您始终可以遍历 defaultdict 个项目:

d = defaultdict(lambda: defaultdict(int))
for i in d.items():
   # do something
for url in apache_status_dict.keys():
  for req in apache_status_dict[url]:
      print apache_status_dict[url][req]