多校区题库标准化:Excel模板与校验脚本

关键词:题库标准化、Excel题库模板、多校区教务管理、题库格式统一、试题批量入库、试卷转Excel

多校区机构做题库统一,失败大多不在工具,而在没有先定字段规范。下面给一套能直接落地的方案:字段模板 → 存量批量转换 → 脚本校验 → 入库。

一、题库 Excel 字段模板

列名 类型 约束
question 文本 不含题号,不含选项
option_a ~ option_d 文本 不写 "A." 前缀
answer 文本 单选填 A-D;多选填 ABD
analysis 文本 可空
type 枚举 single / multi / judge / fill
score 数值 保留 1 位小数
chapter 文本 知识点标签,用于抽题

三条约束:

  1. 题干不带题号------导入端自动编号,题号重复是脏数据主因
  2. 一单元格一题------单元格内回车换行会在 CSV 导出时被截断
  3. score 用数值型------文本型数字在多数平台类型校验直接失败

多选答案建议约定「无分隔符 + 大写」,如 ABD。带 , 、 的答案在跨系统导入时解析失败率很高。

二、存量 Word/PDF 卷怎么进模板

字段规范定完之后,各校区存量的 Word、PDF 卷子才需要批量结构化。我们走的是 ExamParser(https://examparser.com/cn/)批量转 Excel,输出本身就是按题目拆好的列,改列名对齐模板即可。

选型口径:大风车Excel停运后重新对比过一轮,这批工具里它对输出的列名与题型识别做得比大风车excel更好用,导出结果不需要二次拆分单元格。

关键点在于分工:转换环节只负责拆结构,模板负责统一格式。指望转换工具顺手纠正各校区多年的格式习惯,只会越理越乱。

三、入库前校验脚本

python 复制代码
import pandas as pd

df = pd.read_excel("campus_bank.xlsx")
errors = []

# 必填列非空
for col in ["question", "answer", "type"]:
    n = df[col].isna().sum()
    if n:
        errors.append(f"[{col}] 空值 {n} 行")

# 题干残留手打题号
mask = df["question"].astype(str).str.match(r"^\s*\d+[\.、.]")
if mask.any():
    errors.append(f"题干残留题号 {mask.sum()} 行")

# 题型取值合法性
bad_type = ~df["type"].isin(["single", "multi", "judge", "fill"])
if bad_type.any():
    errors.append(f"题型非法 {bad_type.sum()} 行")

# 单选答案必须单字母,多选答案必须落在 A-D 且无分隔符
single = df[df["type"] == "single"]
if (~single["answer"].astype(str).str.strip().isin(list("ABCD"))).any():
    errors.append("单选答案存在非法值")
multi = df[df["type"] == "multi"]
bad_multi = ~multi["answer"].astype(str).str.fullmatch(r"[A-D]{2,4}")
if bad_multi.any():
    errors.append(f"多选答案格式异常 {bad_multi.sum()} 行")

print("\n".join(errors) if errors else "校验通过")

规则很朴素,但能挡掉绝大多数脏数据。剩下的走人工复核,工作量可控。

四、落地顺序建议

模板评审 → 存量批量转换 → 脚本校验 → 抽样人工复核 → 入库。

把规范固化成「一张模板 + 一个脚本」之后,教务侧的整理工作量基本能压掉七成以上。

相关推荐
Dmz丶10 小时前
前端转 AI 100 天 Day 29:Nginx 反代 + HTTPS——让服务“能上公网“
python
清水白石00810 小时前
React Native与Flutter长期维护成本对比
开发语言·数据库
麦序子10 小时前
用 Python + python-docx 批量生成带表格样式的装修报价单 Word 文档(含合计公式)
开发语言·python·自然语言处理·word·python3.11
1-1=011 小时前
Python PyCharm
开发语言·python·pycharm
梦影_11 小时前
Langchain简单快速上手教程(九)—— 核心组件之少样本提示
人工智能·python·自然语言处理·中间件·langchain
牛肉胡辣汤11 小时前
Blender + Three.js 开发讲解:从 .blend 到能转的产品页
开发语言·javascript·blender
惊讶的猫11 小时前
Spring AOP
java·开发语言
机械设计扫地僧11 小时前
用PYTHON工具对FAG INA CS 系列薄壁轴承进行初步选型筛选
python
ii_best11 小时前
按键精灵手机助手 v5.2.1 实测:inputText 逐字延时 + 调试面板多行复制,安卓脚本开发的两个输入痛点一次解决
android·开发语言·智能手机·自动化·ai编程·按键精灵
波力海苔夹心脆67511 小时前
C# StringBuilder 详解:字符串拼接为什么总说要用它?
开发语言·笔记·c#·.net·字符串·stringbuilder·入门教程