CSV转JSON转换器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rn88lg3j/csv-json。
技能介绍
解决什么问题
CSV 与 JSON 是两种最常见的数据交换格式,但在工程实践中,两者之间的转换往往充满琐碎的细节:一个 GBK 编码的导出文件可能在默认 UTF-8 的读取逻辑下直接乱码;分隔符未必是逗号,也可能是制表符或分号;首行是注释还是表头需要人工确认;最终想要的 JSON 结构是 records 列表、二维 values 数组,还是 split 后的列名与数据分离,不同下游消费方要求各不相同。手工写脚本处理这些边界条件既重复又容易出错,尤其是面对编码探测、分隔符嗅探这类"只有踩过才知道"的问题时。
这个技能如何工作
该技能是一个基于 FastMCP 的 MCP 服务器,把 CSV→JSON 的转换逻辑封装成可被大模型调用的工具函数。大模型本身作为路由层,负责理解用户意图、选择工具并提取参数,真正的转换由代码层执行。
核心提供三个工具:
get_csv_info:先摸清文件底细。返回文件大小、估算行数、列数、列名列表、示例数据、编码与检测到的分隔符,为后续转换决策提供依据。convert_csv_file:文件到文件的转换。除了常规的分隔符、编码、skip_rows、header参数外,还支持orient参数控制输出形态(records、values、split),以及indent控制缩进。convert_csv_string:直接处理内存中的 CSV 字符串,适用不落盘的数据流场景。相比文件版本,orient额外支持index与table两种结构。
使用前有一个强制前提:必须配置 API 密钥。首次运行时若 scripts.config.settings.api_key 为空,模型会通过 AskUserQuestion 主动向用户索取,随后调用 scripts.config.set_api_key(key) 持久化保存。缺少密钥时不允许自行搜索或编造数据。
适用边界与注意点
- 调用前需确认密钥已配置,否则流程会中断在第一步。
- 文件类工具要求传入有效的
file_path,路径不存在会抛出FileNotFoundError;格式错误则报ValueError。 get_csv_info返回的row_count是估算值,并非精确计数,不要把它当作严格的行统计使用。- 编码支持覆盖
utf-8、gbk、gb2312等常见类型,但遇到罕见编码仍需先转换。 - 当参数缺失时,模型会通过
AskUserQuestion补齐,而非猜测默认值。
使用场景
- 拿到一份 GBK 编码、分号分隔的导出文件,不确定表头和列数,需要先查看文件信息再决定转换参数
- 下游接口要求 JSON 是二维 values 数组而非 records 列表,需要把 CSV 转成指定 orient 的结构
- 上游接口返回 CSV 格式的字符串响应,不想落盘,需要直接转成 JSON 再写入数据库
- 报表 CSV 前几行是注释,需要按 skip_rows 跳过、不设表头、以列索引作为键名完成转换
适合人员
- 数据分析工程师:需要把多种编码和分隔符的业务导出文件批量转成统一结构的 JSON 供下游消费
- 后端开发:对接只返回 CSV 字符串的老接口,想不落盘直接解析成 JSON 入库
- 数据管道运维:下游系统要求特定 orient 的 JSON,需要在转换时精确控制输出结构
- 测试工程师:需要快速查看 CSV 文件的编码、分隔符和样例数据,确认格式后再写断言