你好,我是python的初学者,我正在遍历一个csv文件,试图找出一个特定用户使用这些符号的次数:“@”和“#”,并将其作为字典打印出来。问题是,我认为它将“@yomomma”之类的符号视为非因素,因为该符号不是从单词中分离出来的,但我也不确定。
def getUserTweetDetails(tweetFile,twitterUsername):
import csv
myFile = open(tweetFile,"r") # opening file in read
csvReader = csv.reader(myFile,delimiter=",") # splitting for ','
next(csvReader) # skipping header
userDetails = {}
mentionsCounter = 0
hashtagCounter = 0
for row in csvReader:
if (row[0] == twitterUsername):
if (row[2] == '@'):
mentionsCounter += 1
if (row[2] == '#'):
mentionsCounter += 1
userDetails["mentions"] = mentionsCounter
userDetails["hashtags"] = hashtagCounter
print(userDetails)
这将返回
getUserTweetDetails("Tweets-2020 (2).csv",'ChrisMurphyCT')
**{'mentions': 0, 'hashtags': 0}**
csv文件格式如下所示:推特用户名,政党,推特文本
2条答案
按热度按时间gfttwv5a1#
语句
row[2] == '@'
检查tweet是否等于@
,您要做的是查看tweet是否包含带有'@' in row[2]
的符号。此外,还有一个错误,您两次都添加到
mentionsCounter
,而不是第二次添加到hashtagCounter
。最后一个一般性的注意,我会在文件的顶部导入csv,而不是在函数中导入,所以导入只在脚本第一次运行时调用,而不是每次调用函数时调用。
以下是前两项更改:
字符串
请记住,如果
@
或#
在一条推文中出现多次,根据您的代码,它们只会被计数一次。rqmkfv5c2#
让我为你简化一下