Python字典列表仅查看最后一个元素

时间:2016-07-18 19:14:57

标签: python list dictionary elements

努力弄清楚为什么这不起作用。这应该。但是当我创建一个词典列表然后查看该列表时,我只能看到列表中的最终条目:

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"

1 个答案:

答案 0 :(得分:4)

您在脚本的开头只创建了一个dict,然后多次将该dict追加到列表中。

尝试通过将初始化移动到循环内部来创建多个单独的dicts。

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

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