我可以从tweet获取不同的tweet参数。在
keyword = tweepy.Cursor(api.search, val,tweet_mode='extended',lang='en').items(2)
tweetdone = 0
all_tweet = []
for tweet in keyword:
tweet_record = {}
tweet_record['tweet.text'] = tweet.full_text
tweet_record['tweet.user.name'] = tweet.user.name
tweet_record['tweet.user.location'] = tweet.user.location
tweet_record['tweet.user.verified'] = tweet.user.verified
tweet_record['tweet.lang'] = tweet.lang
tweet_record['tweet.created_at'] = tweet.created_at
tweet_record['tweet.user'] = tweet.user
tweet_record['tweet.retweet_count'] = tweet.retweet_count
tweet_record['tweet.favorite_count'] = tweet.favorite_count
我的问题是。我想解析tweet中的media
对象。但是extended_entities
并不是所有tweet中都有媒体url。
所以如果我试着像这样拿它
它会出错,因为扩展实体可能不会出现在少数tweet中。在
如何处理此问题并正确获取媒体内容?在
这里有几个选项,可以检查密钥是否存在,或者使用一些try/exceptions。在
检查密钥是否存在:
之所以可以这样做,是因为tweepy返回一个status对象,该对象的行为类似于json文件或python字典,因此实际上有一个key:值对。你应该能够使用(按照你上面的代码)
当然,反过来也是可能的
^{pr2}$但是这可能会导致问题,如果扩展的实体存在,但是由于某种原因media_url不存在呢?嘿,我想从这里得到更多的东西(如果我不想从这里得到更多的东西!)您将不得不执行长或多嵌套if语句,这看起来不是最好的
^{3}$所以试着扔出去可能更容易,除了…
这意味着程序在找不到特定元素时不会出错。AttributeError用于访问对象的无效属性。当然,为了便于阅读,您可能需要重新订购。但是请记住,虽然这样做是pythonic如果在我看来使用得太频繁,可能会有点难以阅读。在
我在查找答案时提到了this question。如果你需要进一步的帮助的话,给你一些好主意。在
希望有帮助。在
相关问题 更多 >
编程相关推荐