Afin d'avoir le nombre de premières demandes ayant échoué de différentes URL à partir d'un journal d'accès avec Python, j'ai dû créer un defaultdict de defaultdict de cette manière:

apache_status_dict = defaultdict(lambda : defaultdict(int))

Je compte le nombre de requêtes ayant échoué à l'aide d'un analyseur 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

Le serveur sur lequel je travaille a Python 2.6 installé et il n'y a aucun moyen de le mettre à jour. Alors, y a-t-il un moyen de créer quelque chose comme ça dans mon code:

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

Toute aide ou suggestion serait appréciée!

0
mouad 13 juil. 2015 à 09:22

2 réponses

Meilleure réponse
for url in apache_status_dict.keys():
  for req in apache_status_dict[url]:
      print apache_status_dict[url][req]
1
PYPL 13 juil. 2015 à 07:43

Vous pouvez toujours parcourir defaultdict éléments:

d = defaultdict(lambda: defaultdict(int))
for i in d.items():
   # do something
1
Ashot 13 juil. 2015 à 07:36