首页 > 解决方案 > 为什么我会收到 AttributeError 消息?

问题描述

我有一个名为 tweets.txt 的文件。每一行的格式为:

[纬度,经度] 取值日期时间文本

文件中包含的数据示例:

[41.298669629999999,-81.915329330000006] 6 2011-08-28 19:02:36 工作需要飞过去......我很高兴看到 Spy Kids 4 对我生命的热爱...... ARREIC
[33.702900329999999,-117.90150957040000 ] 6 2011-08-28 19:03:13 今天将是我一生中最伟大的一天。受雇在我最好朋友的祖父母 50 周年纪念日拍照。60位老人。呜。
[38.809954939999997, -77.125144050000003] 6 2011-08-28 19:07:05 我只是把我的生命放在5个手提箱里

我的任务要求我提取每行的第一个和第二个索引(纬度和经度,它们是整数)。问题是这些有诸如“[”、“、”和“]”之类的字符,我想删除这些。

tweetfile=input("Enter name of tweet file: ")  
infile=open(tweetfile,"r",encoding="utf-8")  
for line in infile:  
    line=line.rstrip()  
    word=line.split()  
    word=word.rstrip(",") 

如您所见,每当我在上面的字条行中输入参数时,无论是 [、逗号还是 [,我都会不断收到一条错误消息:

AttributeError:“列表”对象没有属性“rstrip”

为什么我会收到此消息?我以为我在做正确的事。这样做的正确方法是什么?

标签: pythonattributeerror

解决方案


split将字符串拆分为列表。rstrip当您需要在每个单词上调用它时,您正在尝试在实际列表中执行。

您可以遍历列表以实现此目的:

for line in infile:  
    line=line.rstrip()  
    for word in line.split():
        word=word.rstrip(",")

或者,您可以像以前那样拆分它并通过索引访问您想要的单词。

为了澄清:

在您的代码中,split()变成word

[“[38.809954939999997”,

"-77.125144050000003]",

"6",

"2011-08-28 19:07:05",

“我”,

“只是”,

“放”,

“我的”,

“生活”,

“在”,

“喜欢”,

"5",

“手提箱”]

您正在尝试对此进行rstrip操作,而不是单词本身。遍历列表访问每个单词并允许您使用rstrip.


推荐阅读