#!/C:\Users\Yue\Desktop\
import re
from pprint import pprint
from collections import defaultdict
output = open("udp_data","w")
sum = defaultdict(list)
with open("DNS","r") as input:
ip = []
port = []
for line in input:
if re.match("(.*)Internet(.*)",line):
ip.append(line.split("Src: ",1)[1])
if re.match("(.*)User(.*)",line):
port.append(line)
count = 0
for y in ip:
if y in sum:
sum[y].append(port[count])
else:
sum[y]= port[count]
count += 1
pprint (sum)
任何人都可以帮我解决这个错误,即AttributeError:' str'对象没有属性'追加'?我不知道为什么它一直告诉我我不能将str附加到我为字典定义的列表中。
答案 0 :(得分:2)
您收到的错误消息并未表明您无法将str
附加到列表中。它说你的字符串没有append
方法..
在您的代码port
中是一个字符串列表。
在线:
sum[y] = port[count]
...您要将port[count]
元素str
分配给sum[y]
。之后你正在尝试......
sum[y].append(port[count])
...将一个项目附加到您之前分配的字符串 - 此时sum [y]`是一个字符串而不是列表。