如何从 Tweepy ResultSet 中提取信息
How to extract information from Tweepy ResultSet
如何与 Tweepy 结果集交互?我怎样才能提取信息?它有点像列表或字典,但我无法提取其中的特定元素。
import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
print(type(api.favorites('twitter')))
Out[1]: <class 'tweepy.models.ResultSet'>
print(api.favorites('twitter'))
Out[2]: Status(favorited=False, source='Twitter for iPhone', in_reply_to_status_id=None, coordinates=None, text='Starting the Twitter chat now. https://t.co[...]
我以前从未处理过像 ResultSet 这样的对象,所以我不确定如何从中提取信息。我注意到它的工作方式有点像列表,因为我可以像这样从列表中获取特定的推文:
print(api.favorites('twitter')[1])
但我无法像这样嵌入元素:
print(api.favorites('twitter')[1][0])
Out[3]: TypeError: 'Status' object does not support indexing
或者像这样:
print(api.favorites('twitter')[1]['favorited'])
Out[4]: TypeError: 'Status' object is not subscriptable
感谢任何帮助!
tweepy.ResultSet
是一个 subclass of a Python's list
:
class ResultSet(list):
"""A list like object that holds results from a Twitter API query."""
ResultSet
中的元素可以是不同的类型 - 状态、用户、关系等。
您的特定 ResultSet
中的每个元素都是一个 Status
instance,它允许属性访问(通过 点符号 )到 Twitter 状态属性:
result_set = api.favorites('twitter')
status = result_set[0]
print(status.favorited)
这里我使用 for
循环显示了 resultset
。在 for 循环中,使用与@alecxe 提到的相同的方式来访问每个对象 属性
# For ex, GET users/lookup API call returns resultset
users = api.lookup_users(screen_names=['Whosebug,StackExchange'])
# get the length of user and @alecxe mentions
for i in range(len(users)):
print 'Name - ' + users[i].name
print 'Bio - ' + users[i].description
print 'Location - ' + users[i].location
print 'Joined at - ' + str(users[i].created_at)
print 'User ID - ' + users[i].id_str
print ''
输出:
Name - TechCrunch
Bio - Breaking technology news, analysis, and opinions from TechCrunch. Home to Disrupt, TC Sessions, and Startup Battlefield. Got a tip? tips@techcrunch.com
Location - San Francisco, CA
Joined at - 2007-03-07 01:27:09
User ID - 816653
Name - Piwik Analytics
Bio - Piwik is the leading open analytics platform (Web+Mobile). An open alternative to Google Analytics. Privacy is built-in. Tweet about Piwik if you love it!
Location - Planet Earth
Joined at - 2009-06-22 23:47:00
User ID - 49813707
如何与 Tweepy 结果集交互?我怎样才能提取信息?它有点像列表或字典,但我无法提取其中的特定元素。
import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
print(type(api.favorites('twitter')))
Out[1]: <class 'tweepy.models.ResultSet'>
print(api.favorites('twitter'))
Out[2]: Status(favorited=False, source='Twitter for iPhone', in_reply_to_status_id=None, coordinates=None, text='Starting the Twitter chat now. https://t.co[...]
我以前从未处理过像 ResultSet 这样的对象,所以我不确定如何从中提取信息。我注意到它的工作方式有点像列表,因为我可以像这样从列表中获取特定的推文:
print(api.favorites('twitter')[1])
但我无法像这样嵌入元素:
print(api.favorites('twitter')[1][0])
Out[3]: TypeError: 'Status' object does not support indexing
或者像这样:
print(api.favorites('twitter')[1]['favorited'])
Out[4]: TypeError: 'Status' object is not subscriptable
感谢任何帮助!
tweepy.ResultSet
是一个 subclass of a Python's list
:
class ResultSet(list):
"""A list like object that holds results from a Twitter API query."""
ResultSet
中的元素可以是不同的类型 - 状态、用户、关系等。
您的特定 ResultSet
中的每个元素都是一个 Status
instance,它允许属性访问(通过 点符号 )到 Twitter 状态属性:
result_set = api.favorites('twitter')
status = result_set[0]
print(status.favorited)
这里我使用 for
循环显示了 resultset
。在 for 循环中,使用与@alecxe 提到的相同的方式来访问每个对象 属性
# For ex, GET users/lookup API call returns resultset
users = api.lookup_users(screen_names=['Whosebug,StackExchange'])
# get the length of user and @alecxe mentions
for i in range(len(users)):
print 'Name - ' + users[i].name
print 'Bio - ' + users[i].description
print 'Location - ' + users[i].location
print 'Joined at - ' + str(users[i].created_at)
print 'User ID - ' + users[i].id_str
print ''
输出:
Name - TechCrunch
Bio - Breaking technology news, analysis, and opinions from TechCrunch. Home to Disrupt, TC Sessions, and Startup Battlefield. Got a tip? tips@techcrunch.com
Location - San Francisco, CA
Joined at - 2007-03-07 01:27:09
User ID - 816653
Name - Piwik Analytics
Bio - Piwik is the leading open analytics platform (Web+Mobile). An open alternative to Google Analytics. Privacy is built-in. Tweet about Piwik if you love it!
Location - Planet Earth
Joined at - 2009-06-22 23:47:00
User ID - 49813707