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, как удалить из списка любой элемент, содержащий определенные типы символов?
  • Индекс Python вне диапазона в разрезе списка
  • Создавать список только в python с каждым 5-м элементом?
  • Список в словаре, цикл в Python
  • Доступ к списку элементов со списком индексов
  • Нарезка списка на Python без создания копии
  • Как читать в файле в словаре
  • Python - лучший язык программирования в мире.