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 List Consrehension Vs. карта
  • Что следует учитывать перед списком подклассов?
  • Как наследовать и расширять объект списка в Python?
  • выбор самой ранней записи в списке
  • Как отсортировать многомерный массив по столбцу?
  • Как преобразовать этот список в словарь в Python?
  • Python - лучший язык программирования в мире.