tweepy:寻找转发的原作者

时间:2014-11-23 23:58:04

标签: python twitter tweepy

我是一个蟒蛇新手,并且在这里坚持使用。

我要做的是将一堆用户和推文对象引入到具有推文和转发关系的neo4j数据库中。我的问题在于确定给定的状态对象是否为转发,如果是,则确定原始作者的screen_name和id_str。

如果我打印出tweet.retweets,我可以看到数据,但我无法弄清楚如何去做。 tweepy的文档提到了关于对象模型的一些信息,有关更多信息,请查看ModelsReference,但谷歌在这里没有帮助我。

任何帮助都会很棒,即使只是指向正确的方向。感谢

示例代码

tweets=api.get_timeling(1234556)
twitter_user=api.get_user(123456)
for tweet in tweets:
    neo4j_create_tweet_node(tweet)
    if tweet.user.id == twitter_user.id:
        create_tweet_relationship(twitter_user,tweet)
    elif tweet.user.id != twitter_user.id:
        create_retweet_relationship(twitter_user,tweet)

3 个答案:

答案 0 :(得分:3)

假设推文是转发, originalAuthorID = tweet.retweeted_status.user.id_str;

答案 1 :(得分:1)

根据Twitter API documentation

  

转发可以通过retweeted_status属性的存在与典型的推文区分开来。此属性包含转发的原始推文的表示形式。请注意,转发的转发不会显示中间转推的表示,而只会显示原始推文。

我会使用hasattr()在每个Tweetpy推文对象中查找retweeted_status atttibute的存在。

以下代码(其中create_tweet_relationship()create_retweet_relationship()是您在示例中定义的函数)似乎应该可行:

for tweet in tweets:
    if hasattr(tweet, 'retweeted_status'):
         create_tweet_relationship(tweet.retweeted_status.author, tweet)
    else:
         create_retweet_relationship(tweet.author, tweet)

答案 2 :(得分:0)

如果推文是另一个推文的推文,则原始的转发状态将包含在字段中的JSON对象中" retweeted_status"。您可以在" user"下获取用户信息。字段。