青年大学习自动核对名单详细教程【Python 版】
前言
大家好,今天我们来给大家分享一个很实用的东西。这个小程序来自于一个很偶然的想法,我作为班级团支书,核对青年大学习的名单是一件既费时又费力还没有技术含量的事情。那为何不写一个能够自动核对名单的小程序呢?
想法和思路
编写程序:我们可以编写一个程序,用于帮助我们核对青年大学习学习名单。这个程序可以根据我们输入的学习名单,自动检查名单中的每个人是否已经完成了学习任务。我们可以使用编程语言(如 Python)来编写这个程序。
但是,我们发现这个方法太麻烦,这个和我一个一个对比,有什么区别呢。我就想到了直接构建列表就好了啊。省时省力。
功能实现
具体来说,这个 URL 是 http://dxx.ahyouth.org.cn/api/peopleRankStage
,表示请求一个名为 reason_stage259
的数据表中的某些列信息。这个数据表中可能包含一些数据,包括某个人的各种信息,例如他的直属高校、所在学院、专业等等。这里就是大家学习的名单。
data
字典包含了需要查询的列名和对应的值,例如 table_name
表示需要查询的表名,level1
表示需要查询的列名为 level1
的值,level2
表示需要查询的列名为 level2
的值等等。
调用 requests
库中的 get()
方法,传入这个 URL 和 data
字典,可以获取服务器返回的结果。这个结果是一个字典,其中包含了查询的结果,就是学习的名单。
我们发现返回 res.text 就会乱码,我们可以转码,或者直接 json 解决。
我们接着看看后面的程序:
这段代码把 res.json()
返回的是一个包含多个字典的列表,每个字典代表一个用户的信息。['list']['list']
表示字典中的第一个键对应的列表,即用户的名字和学习时间。
循环处理 html_lists
列表中的每个字典,获取其中的 username
键,将其添加到 yixue_list
列表中。这样,循环结束后,yixue_list
列表中就包含了所有学习了青年大学习的名字。
这段代码使用了 Python 的集合(set)和列表(list)操作。
首先,它使用 set
将所有用户的名字转换为集合,去除了重复的名字。然后,它使用 set
将 yixue_list
中的名字转换为集合,再使用 set
将两个集合的差转换为新的集合。
接着,它检查新集合是否为空,如果为空,则说明所有用户都已经完成了青年大学习,程序输出一条消息。否则,它输出未完成的名单,并将其打印出来。
我们这里把我们班级所有同学的名字都放到一个list_all
列表里面。
效果
到这里,我们的程序就实现了,回头,我把程序封装一下,大家就可以直接使用了。
总结
哈哈,这下谁没有学习青年大学习,就可以一下找到了。
版权声明: 本文为 InfoQ 作者【BROKEN】的原创文章。
原文链接:【http://xie.infoq.cn/article/0fd2fe743e6028ce3e0b56162】。文章转载请联系作者。
评论