06-02 检查 CSV 格式错误
题目
分别使用重复列名、缺少 finished 列和未闭合引号,检查 RecordError 的反馈,并确认数据库内容没有变化。
推导与做法
三份输入分别破坏表头唯一性、必需字段和 CSV 引号结构。read_csv 应把它们转换成 RecordError,在 import_file 打开 Library 之前结束。
每项使用独立临时文件和数据库路径,捕获后核对数据库文件尚未建立。若已有库,则另外从新连接比较原记录;不能因为读取失败而执行一次空批次导入。
实现与运行
查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。
在配套目录的 调试与项目组织/quality_project 中运行。先按项目 README 执行 uv sync --locked。
# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch06.py" 06-02
程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。
查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
[
{
"error": "RecordError",
"message": "CSV 表头应包含 title、finished、tags",
"db_created": false
},
{
"error": "RecordError",
"message": "CSV 表头应包含 title、finished、tags",
"db_created": false
},
{
"error": "RecordError",
"message": "CSV 引号或分隔结构错误",
"db_created": false
}
]