2016-07-18 3 views
0

Борясь за то, чтобы понять, почему это не работает. Должно. Но когда я создаю список словарей, а затем просмотреть этот список, я только когда-либо видеть конечный элемент из списка: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" 

ответ

4

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

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

alerts = [] 
af=open("C:\snort.txt") 

for line in af: 
    alertDict = {} 
    #rest of loop goes here 

 Смежные вопросы

  • Нет связанных вопросов^_^