我是一个蟒蛇新手,并且在这里坚持使用。
我要做的是将一堆用户和推文对象引入到具有推文和转发关系的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)
答案 0 :(得分:3)
假设推文是转发, originalAuthorID = tweet.retweeted_status.user.id_str;
答案 1 :(得分:1)
转发可以通过
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"下获取用户信息。字段。