如何基于JSON Schema将扁平化CSV表格转换为结构化JSON
CSV转结构化JSON成熟解决方案
Python生态可用工具
csvkit的csvjson命令:CSV处理领域的常用工具,无Schema场景下直接执行命令即可输出你需要的扁平化JSON数组;如果需要生成嵌套结构,配合jq做简单的规则过滤和结构转换即可满足需求,无需编写完整业务代码。pandas+glom组合:pandas负责读取CSV文件、按唯一键(如示例中的user_id)做分组聚合,glom库专门处理嵌套数据结构的构建,仅需少量代码即可实现Schema映射、数组去重、类型转换逻辑,适配你提供的自定义Schema规则非常方便。- 带Schema校验的实现方案:配合
jsonschema库,读取你定义的带source属性的JSON Schema,先校验CSV字段和Schema映射关系的一致性,再按Schema定义的结构类型(对象/数组/基础类型)自动构建嵌套JSON,还能直接对输出结果做格式合规性校验。
跨语言/命令行工具方案
- Miller(mlr):高性能结构化文本处理工具,无需编写代码,仅通过命令行参数即可指定分组规则、嵌套结构构建规则,直接输出目标结构化JSON,处理大文件时性能远高于Python实现,适合批量处理场景。
轻量实现思路(无依赖/少依赖场景)
核心逻辑仅需3步即可实现:
- 读取所有CSV行,按指定唯一键(如示例中的user_id)分组,同一唯一键的所有行归为同一组
- 针对每组数据,先提取所有基础类型/对象类型的固定字段,这类字段同组内所有行取值一致,直接取首行值即可
- 针对数组类型字段:单元素数组直接对对应列的所有行值做去重后存入数组;对象数组先将对应的多列值组合为对象,去重后存入数组
内容的提问来源于stack exchange,提问作者Ernesto
相关产品推荐
相关产品推荐

