Python 无法访问twitter上的@handles

Python 无法访问twitter上的@handles,python,twitter,Python,Twitter,我正在使用以下函数从twitter上的帐户访问推文。当我输入cs50时,它可以正常工作,但当我输入任何像@cs50这样的句柄时,它都不会返回任何结果 def get_user_timeline(screen_name, count=200): """Return list of most recent tweets posted by screen_name.""" # ensure count is valid if count < 1 or count > 200: r

我正在使用以下函数从twitter上的帐户访问推文。当我输入cs50时,它可以正常工作,但当我输入任何像@cs50这样的句柄时,它都不会返回任何结果

def get_user_timeline(screen_name, count=200):
"""Return list of most recent tweets posted by screen_name."""

# ensure count is valid
if count < 1 or count > 200:
    raise RuntimeError("invalid count")

# ensure environment variables are set
if not os.environ.get("API_KEY"):
    raise RuntimeError("API_KEY not set")
if not os.environ.get("API_SECRET"):
    raise RuntimeError("API_SECRET not set")

# get screen_name's most recent tweets
# https://dev.twitter.com/rest/reference/get/users/lookup
# https://dev.twitter.com/rest/reference/get/statuses/user_timeline
# https://github.com/ryanmcgrath/twython/blob/master/twython/endpoints.py
try:
    twitter = Twython(os.environ.get("API_KEY"), os.environ.get("API_SECRET"))
    user = twitter.lookup_user(screen_name=screen_name)
    if user[0]["protected"]:
        return None
    tweets = twitter.get_user_timeline(screen_name=screen_name, count=count)
    return [html.unescape(tweet["text"].replace("\n", " ")) for tweet in tweets]
except TwythonAuthError:
    raise RuntimeError("invalid API_KEY and/or API_SECRET") from None
except TwythonRateLimitError:
    raise RuntimeError("you've hit a rate limit") from None
except TwythonError:
    return None
def get_user_timeline(屏幕名称,计数=200):
“”“返回按屏幕名称发布的最新推文列表。”“”
#确保计数有效
如果计数<1或计数>200:
引发运行时错误(“无效计数”)
#确保设置了环境变量
如果不是os.environ.get(“API_密钥”):
引发运行时错误(“未设置API_键”)
如果不是os.environ.get(“API_机密”):
引发运行时错误(“未设置API\U机密”)
#获取screen_name最近的推文
# https://dev.twitter.com/rest/reference/get/users/lookup
# https://dev.twitter.com/rest/reference/get/statuses/user_timeline
# https://github.com/ryanmcgrath/twython/blob/master/twython/endpoints.py
尝试:
twitter=Twython(os.environ.get(“API\u KEY”)、os.environ.get(“API\u SECRET”))
user=twitter.lookup\u user(screen\u name=screen\u name)
如果用户[0][“受保护”]:
一无所获
tweets=twitter.get\u user\u timeline(screen\u name=screen\u name,count=count)
返回[html.unescape(tweet[“text”]。替换tweet中的tweet(“\n”,”)]
除TwythonAuthError外:
从“无”引发运行时错误(“无效的API_密钥和/或API_密钥”)
除TwythonRateLimitError外:
将RuntimeError(“您已达到速率限制”)从None提高到None
除TwythonError外:
一无所获

如果
@
符号是API的问题,您可以在传入变量之前清除它,如下所示:

screen_name = screen_name[1:] if screen_name.startswith("@") else screen_name

不,这不是问题所在。地址cs50和@cs50都存在,但我只能得到前者。我很确定Twitter不允许用户名以@开头,或者我错了吗?请在您的问题中添加相关的
导入