OIERDB 的搜索功能有一定的局限性,我们难以进行更复杂的数据分析(包括但不限于开盒等),所以我写了一个程序读取 OIERDB 的数据库,然后我们就可以在代码里随意操作了。
如果要开一个人(我是说如果),你只需要把你已知的信息作为约束条件再逐个判断就可以了。
代码下载:main.py
首先你需要部署 https://github.com/OIerDb-ng/OIerDb-data-generator 来生成数据库,按照其说明部署即可。
接着按照说明,找到部署后生成的文件 result.txt
。
将其与 main.py
保持在同一目录下。
然后运行 main.py
就可以了,速度会比较慢(写的很丑),写了注释。
然后主要是说说怎么看记录的数据的含义。
一条记录中:
class Record:
# 比赛编号
contest = ""
# 学校编号
school = ""
# 成绩
score = ""
# 排名
rank = ""
# 省份编号
province = ""
# 奖项编号
prize = ""
其中奖项编号对应关系如下:
0 -> 金牌
1 -> 银牌
2 -> 铜牌
3 -> 一等
4 -> 二等
5 -> 三等
一个 OIER:
class Oier:
# 编号
uid = ""
# 名字首字母(对于大多数人)
enname = ""
# 名字
zhname = ""
# 性别
# man 1 woman -1
gender = ""
# 初中入学年份
year = ""
# OIERDB 分数
dbscore = ""
# CCF 分数
ccfscore = ""
# CCF 等级
ccfgrade = ""
# 比赛记录,以比赛编号为键,记录为值的字典
recs = {}
def __init__(self):
self.recs = {}
然后所有的 OIER 的数据都被存在了
oiers
,可以任意处置。
技术杂谈 — Feb 12, 2025