Python Список словарей только Смотрите последний элемент

Борясь, чтобы понять, почему это не работает. Должно. Но когда я создаю список словарей, а затем просматриваю этот список, я вижу только последнюю запись из списка:

alerts = [] alertDict = {} af=open("C:\snort.txt") for line in af: m = re.match(r'([0-9/]+)-([0-9:.]+)\s+.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})\s+->\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})', line) if m: attacktime = m.group(2) srcip = m.group(3) srcprt = m.group(4) dstip = m.group(5) dstprt = m.group(6) alertDict['Time'] = attacktime alertDict['Source IP'] = srcip alertDict['Destination IP'] = dstip alerts.append(alertDict) for alert in alerts: if alert["Time"] == "13:13:42.443062": print "Found Time" 

One Solution collect form web for “Python Список словарей только Смотрите последний элемент”

Вы создаете ровно один dict в начале скрипта, а затем добавляете его один раз в список несколько раз.

Попробуйте создать несколько отдельных dicts, перемещая инициализацию во внутреннюю часть цикла.

 alerts = [] af=open("C:\snort.txt") for line in af: alertDict = {} #rest of loop goes here 
  • Python: Разница между: = и "is not"
  • Сортировка словаря в список
  • Пользовательский метод сортировки в Python не сортирует список правильно
  • Каков наиболее эффективный способ добавить элемент в список, только если его еще нет?
  • Сортировка списка по частоте появления в списке
  • Python: TypeError: объект «NoneType» не подлежит расшифровке
  • Список списков против использования памяти одного списка в Python
  • Получение массива как параметров запроса GET в Python
  • Как распечатать список списка в один список в python без использования цикла for или while?
  • Динамическая переменная в Python
  • Проверьте, существует ли значение в списке словарей?
  • Python - лучший язык программирования в мире.