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