2015-05-18 21 views
1

我正在使用Python 2.7和tweepy模塊的最新版本的twitter應用程序。有一件事我無法弄清楚是如何使用功能rate_limit_status()Python 2.7 - Tweepy - 如何獲得rate_limit_status()?

這裏是我的代碼:

import tweepy, time, sys, random, pickle 
import pprint 

# argfile = str(sys.argv[1]) 

#enter the corresponding information from your Twitter application: 
CONSUMER_KEY = '' 
CONSUMER_SECRET = '' 
ACCESS_KEY = '' 
ACCESS_SECRET = '' 

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 

api = tweepy.API(auth) 
public_tweets = api.home_timeline() 
user = api.get_user('@MyUserName') 

print api.rate_limit_status() 

當我打印功能的結果它給了我一個大字典,我無法破譯。我看過tweepy文檔,但找不到使用rate_limit_status()的任何好例子。

我應該如何解決類似問題的下一步是什麼?

是否有工具來格式化這些大型字典,以便我可以閱讀它們並嘗試解密如何訪問字典中的值?

編輯:

事實證明,我沒有的REST API是什麼好理解,以及如何簡單地將它的工作原理!我期待着我腦海中更復雜的東西。

我實際上切換到Twitter的Python模塊Twitter庫而不是Tweepy,然後做了很多關於如何使用Twitter API的研究。

兩個YouTube的影片,真的幫了我是:

https://www.youtube.com/watch?v=7YcW25PHnAA

https://www.youtube.com/watch?v=fhPb6ocUz_k

郵差的Chrome應用程序是真棒,讓我能夠輕鬆測試和可視化我如何調用Twitter的API工作,它很容易格式化所產生的JSON,所以我可以讀它。

爲了快速計算,我還從郵差中拿走了JSON,並將它扔進本網站http://konklone.io/json/,以獲得一個csv,然後我可以在Excel中打開並確保一切按預期行事,並且我現在正在獲得數字的結果。

畢竟,編寫Python代碼來與Twitter API交互很容易!

在此添加所有這些希望它將有助於未來的其他人!如果確實如此,請讓我知道! :)

+1

「twitter Python module twitter library」的意思是「TwitterAPI」(https://github.com/geduldig/TwitterAPI)嗎?您是否有任何特別的理由決定不再使用Tweepy?我剛剛開始使用Tweepy,但尚未遇到問題,所以我想知道是什麼讓您切換。 – yjc

+0

這實際上是在我對Python包裝庫實際上在幕後做了什麼有很好的理解之前。所以我發現使用make raw請求並將它們提交給Twitter API對我更有用。這些包裝庫沒有什麼內在的錯誤。有幾個問題他們的Twitter API會改變,他們會暫時休息,直到有人更新它們。 – timbram

回答

3

由於每Tweepy documentation

返回可供 請求用戶的API請求的剩餘數量達到API限制之前在當前小時。 對rate_limit_status的調用不計入速率限制。如果提供了 認證憑證,則會返回 認證用戶的速率限制狀態。否則,返回請求者IP地址 的速率限制狀態。

所以在簡單的話,你可以說,它返回一個JSON對象,其中會告訴你關於的請求數量所做剩餘請求數,爲什麼它是很難的原因閱讀一見鍾情在於,它包含您所做的每種類型的API調用的計數,而不僅僅是您剛剛執行的當前API調用。

例如,如果您運行上述腳本,則可以看到您撥打了api.home_timeline()現在根據Twitter規則和規定,您只能在給定的窗口會話中對此方法進行15次調用,因此,如果你解開返回的JSON對象,那麼你可以看到,有很多數據,但如果你分析數據,那麼你會發現api.home_timeline()隻影響相關方法的限制,比如在調用上述方法時可以檢查限速使用:

data = api.rate_limit_status() 

print data['resources']['statuses']['/statuses/home_timeline'] 
print data['resources']['users']['/users/lookup'] 

但是你必須做的一點點研究的JSON回來,然後你可以提取JSON對象的相關數據,爲retur ned JSON對象難以閱讀,您可以始終使用these類型的鏈接使其更易於用戶閱讀,然後對其進行分析。