likes
comments
collection
share

青年大学习自动核对名单详细教程【Python版】

作者站长头像
站长
· 阅读数 7

前言

大家好,今天我们来给大家分享一个很实用的东西。这个小程序来自于一个很偶然的想法,我作为班级团支书,核对青年大学习的名单是一件既费时又费力还没有技术含量的事情。那为何不写一个能够自动核对名单的小程序呢?

想法和思路

编写程序:我们可以编写一个程序,用于帮助我们核对青年大学习学习名单。这个程序可以根据我们输入的学习名单,自动检查名单中的每个人是否已经完成了学习任务。我们可以使用编程语言(如Python)来编写这个程序。

但是,我们发现这个方法太麻烦,这个和我一个一个对比,有什么区别呢。我就想到了直接构建列表就好了啊。省时省力。

功能实现

url = 'http://dxx.ahyouth.org.cn/api/peopleRankStage'
data = {
    'table_name': 'reason_stage259',
    'level1': '直属高校',
    'level2': '某某大学',
    'level3': '电子工程与智能制造学院',
    'level4': '微电子科学与工程2002',
}
res = requests.get(url, params=data)

具体来说,这个 URL 是 http://dxx.ahyouth.org.cn/api/peopleRankStage,表示请求一个名为 reason_stage259 的数据表中的某些列信息。这个数据表中可能包含一些数据,包括某个人的各种信息,例如他的直属高校、所在学院、专业等等。这里就是大家学习的名单。

data 字典包含了需要查询的列名和对应的值,例如 table_name 表示需要查询的表名,level1 表示需要查询的列名为 level1 的值,level2 表示需要查询的列名为 level2 的值等等。

调用 requests 库中的 get() 方法,传入这个 URL 和 data 字典,可以获取服务器返回的结果。这个结果是一个字典,其中包含了查询的结果,就是学习的名单。

我们发现返回res.text就会乱码,我们可以转码,或者直接json解决。

我们接着看看后面的程序:

html_lists = res.json()['list']['list']
for html_list in html_lists:
    username = html_list['username']
    yixue_list.append(username)

这段代码把 res.json() 返回的是一个包含多个字典的列表,每个字典代表一个用户的信息。['list']['list'] 表示字典中的第一个键对应的列表,即用户的名字和学习时间。

循环处理 html_lists 列表中的每个字典,获取其中的 username 键,将其添加到 yixue_list 列表中。这样,循环结束后,yixue_list 列表中就包含了所有学习了青年大学习的名字。

weixue_list = list(set(list_all) - set(yixue_list))
if not weixue_list:
    print("全部完成青年大学习")
else:
    print("未完成的名单如下\n", weixue_list)

这段代码使用了 Python 的集合(set)和列表(list)操作。

首先,它使用 set 将所有用户的名字转换为集合,去除了重复的名字。然后,它使用 set 将 yixue_list 中的名字转换为集合,再使用 set 将两个集合的差转换为新的集合。

接着,它检查新集合是否为空,如果为空,则说明所有用户都已经完成了青年大学习,程序输出一条消息。否则,它输出未完成的名单,并将其打印出来。

我们这里把我们班级所有同学的名字都放到一个list_all列表里面。

效果

到这里,我们的程序就实现了,回头,我把程序封装一下,大家就可以直接使用了。

青年大学习自动核对名单详细教程【Python版】

总结

哈哈,这下谁没有学习青年大学习,就可以一下找到了。

转载自:https://juejin.cn/post/7226288663943168057
评论
请登录