Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何让这个twitter机器人工作?Python 3.8_Python_Windows_Twitter_Bots - Fatal编程技术网

我如何让这个twitter机器人工作?Python 3.8

我如何让这个twitter机器人工作?Python 3.8,python,windows,twitter,bots,Python,Windows,Twitter,Bots,我对这段代码有各种各样的问题,这是另一个stackoverflow用户代码的很大一部分,但我假设他们可能从未完成过,因为我会遇到各种各样的错误。著名的是,“Status”对象没有“replace”属性。我想我已经修复了它,不知道,在网上找不到任何东西,尽管它是一个变量,所以我尝试了非变量版本,但仍然没有找到任何东西。现在我有这个问题 Yes Traceback (most recent call last): File "C:\Users\alexo\Desktop\Twitter Dad.py

我对这段代码有各种各样的问题,这是另一个stackoverflow用户代码的很大一部分,但我假设他们可能从未完成过,因为我会遇到各种各样的错误。著名的是,“Status”对象没有“replace”属性。我想我已经修复了它,不知道,在网上找不到任何东西,尽管它是一个变量,所以我尝试了非变量版本,但仍然没有找到任何东西。现在我有这个问题

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
文件“C:\Users\alexo\Desktop\Twitter-Dad.py”,第26行,在 tweet_contents=tweet.split()#假设tweet是str AttributeError:“Status”对象没有属性“split”

错误:

       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'

首先,没有明显的理由将
c
分配给一个元组,所以我假设它被删除并替换为tweet内容

也就是说,您应该使用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()行。非常感谢你

要获取源tweet中字符串
I'm
后面的内容,您需要首先找到单词
I'm
的索引,然后提取它后面的单词。请原谅变量名,我在上下班

tweet_contents = tweet.split() # assuming tweet is a str
i = tweet_contents.index("I'm")
c = tweet_contents[i + 1]

例如,如果tweet是“I'm sad”,这会将其拆分为一个列表,
[“I'm”,“sad”]
,然后在0处获取“I'm”的索引,然后从索引0+1获取“sad”。

为什么
c
是一个元组?你想在那里做什么?你的代码缩进丢失了
c=(“im”,”)
可能是你的问题。你为什么要分配
c=tweet
,然后立即将其重新分配给“(“im”和“)”呢?还考虑使用字符串格式化。这是另一个用户代码的一部分,我是新的,对我来说也没什么意义,但我不知道该怎么处理它。谢谢你的解释!现在我只需要弄清楚如何让它在“我是”之后发tweet。现在它只是推特@example\u name Hi('im',''),我是爸爸!好吧,谢谢你,我现在可以发推特了!但它只在推特上发@JohnnyAppleseed嗨('im',''),我是爸爸!你知道我怎样才能让它引用“我是”之后的话吗?我唯一更改的是.format()行。非常感谢你!根据请求更新谢谢你的更新,所以现在我在弄清楚如何应用它时遇到了一个问题,对不起,如果我是,你是非常有帮助的!这就是错误所在。回溯(最近一次调用):文件“C:\Users\alexo\Desktop\Twitter Dad.py”,第26行,tweet_contents=tweet.split()#假设tweet是str AttributeError:“Status”对象没有属性“split”是的,所以它必须是
str
,因此,请参考
Status
对象上的tweet内容。我编辑了原始帖子以便更好地解释。我试试看。
# 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!"
tweet_contents = tweet.split() # assuming tweet is a str
i = tweet_contents.index("I'm")
c = tweet_contents[i + 1]