攝影:產品經理
產品經理笑得比草莓還好看
GNE 正式版上線已經一週了,我想知道有多少人使用 pip 安裝了 GNE,應該如何操做呢?api
這個時候能夠使用 google-cloud-bigquery來實現。瀏覽器
首先咱們須要先建立一個服務帳號密鑰,訪問:https://console.cloud.google.com/apis/credentials/serviceaccountkey。
從服務賬號列表中,選擇新的服務賬號。
在服務賬號名稱字段中,輸入一個名稱。
從角色列表中,選擇BigQuery,在右邊彈出的多選列表中選中所有與 BigQuery 有關的內容。以下圖所示。
下面密鑰類型選爲JSON,點擊「建立」,瀏覽器就會下載一個 JSOn 文件到你的電腦上。
而後,使用 pip 安裝一個名爲google-cloud-bigquery的第三方庫。ide
而後編寫代碼:函數
import datetime from google.cloud import bigquery def notify(message): print(message) client = bigquery.Client() query_job = client.query(""" SELECT COUNT(*) AS num_downloads, SUBSTR(_TABLE_SUFFIX, 1, 8) AS `date` FROM `the-psf.pypi.downloads*` WHERE file.project = 'gne' AND details.installer.name = 'pip' AND _TABLE_SUFFIX BETWEEN FORMAT_DATE( '%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE()) GROUP BY `date` ORDER BY `date` DESC """) results = query_job.result() # Waits for job to complete. msg = '' for row in results: msg += "在{}日,有{}人使用pip安裝gne".format(row.date, row.num_downloads) msg += '\n' notify(msg)
這段代碼的關鍵就是其中的 SQL 語句,pypi 上面全部的第三方庫的安裝信息都存放在了the-psf.pypi.downloads*這個庫中,其中的星號是通配符,對應了%Y%m%d格式的年月日,天天一張表。google
file.project字段用於篩選庫的名字,details.installer.name字段用於篩選安裝方式,這裏咱們只看經過pip安裝的。3d
運行這段代碼以前,咱們須要先設置一個環境變量GOOGLE_APPLICATION_CREDENTIALS='剛纔那個 JSOn 文件的絕對路徑'。設置完成之後運行代碼,就能把天天使用 pip 安裝 GNE 的人數顯示出來了。code
在上面代碼的 notify 函數中,我直接打印了 message 參數。但實際使用中,我把這個運算結果經過 Telegram 天天早上9點發送給我,運行效果以下圖所示:
orm