摄影:产品经理
产品经理笑得比草莓还好看
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