努力弄清楚为什么这不起作用。这应该。但是当我创建一个词典列表然后查看该列表时,我只能看到列表中的最终条目:
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"
答案 0 :(得分:4)
您在脚本的开头只创建了一个dict,然后多次将该dict追加到列表中。
尝试通过将初始化移动到循环内部来创建多个单独的dicts。
alerts = []
af=open("C:\snort.txt")
for line in af:
alertDict = {}
#rest of loop goes here