tweets = api.search(q="@mytwitter",count=100,include_entities=True)
t = ['@mytwitter', '@MyTwitter']
for s in tweets:
sn = s.user.screen_name
m = "@%s message" % (sn)
s = api.update_status(m, s.id)
#print(dir(s))
for result in tweets:
print str(result.text)
for userName in result.text:
if userName == "@mytwitter":
result.text.remove(userName)
print (userName)
else:
print("No username")
不确定为什么userName没有从result.text中删除我的Twitter名称。我错过了什么吗?我得到的输出是"No username"
重复了很多次。
如果它有助于result.text的原始输出为"@mytwitter their message"
我正在尝试删除@mytwitter.
答案 0 :(得分:1)
你的问题是条件
if userName == "@mytwitter":
永远不会是真的,所以.remove()从未被调用过。如果您想在result.text中搜索获取您的姓名,请尝试以下操作:
tweets = api.search(q="@mytwitter",count=100,include_entities=True)
for s in tweets:
sn = s.user.screen_name
m = "@%s message" % (sn)
s = api.update_status(m, s.id)
for tweeet in tweets:
if "@mytwitter" in tweeet.text:
tweeet.text = tweeet.text.replace("@mytwitter", "")
print(tweeet.text)
else:
print("No username")
P.S。 str 对象没有.remove()方法,请尝试使用空字符串替换.replace(),如上所列。
答案 1 :(得分:0)
字符串在Python中是不可变的,因此您必须将新字符串分配给另一个变量:
for tweet_text in tweets:
if "@mytwitter" in tweet_text:
new_str = tweet_text.replace("@mytwitter", "") # assigning new string wothout "@mytwitter" to another variable
print(new_str)
else:
print("No username")
示例:
tweets = ["@mytwitter","1234","0987@mytwitter","@mytwitter145236"," @mytwitter12"]
for tweet_text in tweets:
if "@mytwitter" in tweet_text:
new_str = tweet_text.replace("@mytwitter", "") # assigning new string wothout "@mytwitter" to another variable
print(new_str)
else:
print("No username")
输出:
No username
0987
145236
12