樓賽 第30期 Python 模塊大比拼
統計學習數據
介紹
JSON(JavaScript Object Notation, /?d?e?s?n/)是一種輕量級的數據交換格式,最初是作為 JavaScript 的子集被發明的,但目前已獨立于編程語言之外,成為了通用的數據格式,絕大部分編程語言都有專門處理 JSON 數據的函數或工具。
目標
本節挑戰,我們需要編寫腳本處理 JSON 數據。
JSON 數據路徑為 /home/project/user_study.json,默認已下載到環境中,如果環境中沒有該數據,可以運行下面命令手動下載。
wget http://labfile.oss.aliyuncs.com/courses/764/user_study.json
user_study.json 文件包含用戶的學習數據,部分內容展示如下:
{"minutes": 3,"created_at": "2016-06-30 23:54:01","user_id": 220148,"lab": "Vim快速入門","course": "Vim編輯器"
}
請編寫腳本統計文件中一共有多少名用戶,共有多少門課。
要求
腳本文件的路徑為 /home/project/count.py
運行效果圖如下:
題解:
import json
import os
users = set()
course = set()
with open("/home/project/user_study.json") as f:l = f.read()
j = json.loads(l)
for jj in j:users.add(jj.get("user_id"))course.add(jj.get("course"))
print("文件中包含%s名用戶,%s門課" % (len(users), len(course)))