楼赛 第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)))