Agent Skills
返回列表
MARC ISO 转 CSV 转换器

MARC ISO 转 CSV 转换器

数据分析 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_164f4c1f/marc-iso-to-excel。

技能介绍

图书馆或编目系统导出的MARC数据多为ISO 2709二进制格式的.iso文件。这类文件用文本编辑器打开通常是乱码,直接解析又常遇到三个痛点:百万条数据转换时内存溢出、生成的CSV在Excel里中文乱码、个别损坏记录导致整体失败。

核心能力与处理流程

技能核心是scripts/convert_marc.py,采用两阶段流式处理:

  • Phase 1:快速扫描记录,统计总数并提取列名,不写盘,几乎不占内存。
  • Phase 2:逐条读取-转换-写入,全程不累积Record对象,内存占用恒定O(1),损坏记录自动跳过并在结束报告数量。

输出为UTF-8 with BOM CSV,Excel可直接打开且中文不乱码;列顺序按字段号001→8XX升序,已映射字段用中文列名(如正题名、ISBN),未映射字段保留原始标识符(如300$b),多子字段值用中文分号拼接。另支持三种模式:

  • 完整转换单文件,不指定路径时生成同名CSV。
  • 预览模式仅打印前N条记录,不写文件。
  • 批量转换目录下所有.iso文件。

适用边界与注意点

  • 仅支持ISO 2709二进制格式,不支持MARCXML(.xml)。
  • 只想快速查看前几条记录时直接用预览模式,无需完整转换。
  • 脚本无断点续传,中断后重跑会覆盖输出文件,超大文件建议先预览确认。
  • 自定义字段映射需编辑FIELD_MAP字典,未映射字段不会丢数据。
  • 若pymarc报TruncatedRecord,不要手动去除记录末尾的[0x1d][0x1e]字节,直接传原始字节即可。
  • 文件大于1GB时自动启用mmap零拷贝模式,内存仍不足时分拆源文件分批转换。

使用场景

  • 图书馆采编团队拿到几十万条 CIP 编目导出的 .iso 文件,需要转成 Excel 交给审核人员逐条核对。
  • 出版社收到书商提供的 GBK 编码 MARC .iso 文件,需要转成不乱码的表格核对书目信息后再入库。
  • 编目系统导出百万级记录,直接转换担心内存溢出,需要流式写出 CSV 供后续统计分析。
  • 只想快速查看 .iso 文件前几条记录确认字段内容是否正确,不想立即执行完整转换。

适合人员

  • 图书馆采编人员:需要把编目系统导出的 MARC .iso 转成 Excel,供审核与馆际数据交换使用。
  • 出版社数据管理员:需要批量将 CIP 编目数据转换为 CSV,提供给发行渠道或电商平台导入。
  • 书商或数据集成商的技术支持:需要处理客户提供的大批量 .iso 编目文件并解决 GBK 编码识别问题。
  • 数据分析工程师:需要把百万级 MARC 记录转成 CSV 后进行统计分析和入库。