我在使用此代码时遇到各种各样的问题,这是另一个stackoverflow用户代码的很大一部分,但是我假设他们可能从未完成过该代码,因为我遇到了各种各样的错误。众所周知,“状态”对象没有属性“替换”。我认为我已解决的问题,不知道,在网上找不到任何内容,尽管它是变量,所以我尝试了非变量版本,但仍然没有。现在我有这个问题。
Yes
Traceback (most recent call last):
File "C:\Users\alexo\Desktop\Twitter Dad.py", line 28, in <module>
answer="@"+tweet.user.screen_name+" Hi " + c + ", I'm Dad!"
TypeError: can only concatenate str (not "tuple") to str
不知道这有什么问题,脚本的目的是针对该机器人,搜索某人何时以“ I'm ____”开头的推文,然后以“ Hi ____,I'm dad”回复。只是幽默,但我完全迷失了。感谢所有帮助,谢谢!
新问题!
import tweepy
import tweepy as tt
import time
import sys
import importlib
from importlib import reload
importlib.reload(sys)
#login credentials twitter account
consumer_key = 'redacted'
consumer_secret = 'redacted'
access_token = 'redacted'
access_secret = 'redacted'
#login
auth = tt.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tt.API(auth)
search_query = "hi I'm Dad"
user = api.me()
print(user.name)
max_tweets = 100
for tweet in tweepy.Cursor(api.search, q=search_query).items(max_tweets):
c = tweet
c = ("im ","")
answer="@"+tweet.user.screen_name+" Hi " + c + ", I'm Dad!"
print("Reply:",answer)
api.update_status(status=answer)
time.sleep(300) #every 5 minutes
Traceback (most recent call last):
文件“ C:\ Users \ alexo \ Desktop \ Twitter Dad.py”,第26行,在 tweet_contents = tweet.split()#假设tweet是一个str AttributeError:“状态”对象没有属性“拆分”
错误:
Traceback (most recent call last):
File "C:\Users\alexo\Desktop\Twitter Dad.py", line 26, in <module>
tweet_contents = tweet.split() # assuming tweet is a str
AttributeError: 'Status' object has no attribute 'split'
代码
import tweepy
import tweepy as tt
import time
import sys
import importlib
from importlib import reload
importlib.reload(sys)
#login credentials twitter account
consumer_key = '4QGxdJFmn4phBS0z9JTMU1S27'
consumer_secret = 'VuOkfqCEq6YcEeI2Sg6hhP4a7xrMHbhzORr9gQKyX8XfETbbnX'
access_token = '1200414502304591872-lj89lAd7r8oFbXEwDaVxg7YnH8pddO'
access_secret = '3PUfawYhaQJYDU6VYriKiVZNA9zYAAc1UOXe1UREgtWH7'
#login
auth = tt.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tt.API(auth)
search_query = "hi I'm Dad"
user = api.me()
print(user.name)
max_tweets = 100
for tweet in tweepy.Cursor(api.search, q=search_query).items(max_tweets):
tweet_contents = tweet.split() # assuming tweet is a str
i = tweet_contents.index("I'm")
c = tweet_contents[i + 1]
answer = "@{name} Hi {c}, I'm dad!".format(name=tweet.user.screen_name)
print("Reply:",answer)
api.update_status.(status=answer)
time.sleep(300) #every 5 minutes
答案 0 :(得分:0)
首先,没有明显的理由应将c
分配给一个元组,因此我假设将其删除并替换为tweet内容。
也就是说,您应该使用string formatting中的Python构建,而不是字符串串联。
# Using the .format() function:
answer = "@{name} Hi {c}, I'm dad!".format(name=tweet.user.screen_name, c=c)
# Using an "f-string":
answer = f"@{tweet.user.screen_name} Hi {c}, I'm dad!"
编辑
每个OP的评论:
好吧,谢谢你,我现在就发布它!但这只鸣叫@JohnnyAppleseed嗨('im',``),我是爸爸!您知道我如何引用“我是”之后的内容吗?我唯一更改的是.format()行。非常感谢!
要获取源推文中字符串I'm
之后的所有内容,您首先需要找到单词I'm
的索引,然后拉出其后的单词。原谅变量名,我正在上班。
tweet_contents = tweet.split() # assuming tweet is a str
i = tweet_contents.index("I'm")
c = tweet_contents[i + 1]
例如,如果该推文为“我很伤心”,则将其拆分为一个列表["I'm", "sad"]
,然后将索引“ I'm”设为0,然后从索引0 + 1。