AttributeError:' str'对象没有属性'追加'蟒蛇

时间:2015-10-27 23:50:01

标签: python

#!/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附加到我为字典定义的列表中。

1 个答案:

答案 0 :(得分:2)

您收到的错误消息并未表明您无法将str附加到列表中。它说你的字符串没有append方法..

在您的代码port中是一个字符串列表。 在线:

sum[y] = port[count] 

...您要将port[count]元素str分配给sum[y]。之后你正在尝试......

sum[y].append(port[count])

...将一个项目附加到您之前分配的字符串 - 此时sum [y]`是一个字符串而不是列表。