← 中文资源

简体中文版本

Python CSV 转 JSON 转换器

把带表头的 CSV 文件转换为 JSON 数组并报告转换行数的标准库 CLI。

阅读英文原文

项目说明

项目只使用 Python 标准库的 csv 和 json 模块,适合学习流式读取与数据转换。

运行方法

执行 python csv_to_json.py input.csv output.json。工具读取表头并把每行转换为对象,完成后报告行数。

验证方式

测试覆盖正常 CSV、空文件、重复表头和缺失列,断言 JSON 结构与计数。注意编码应显式使用 UTF-8,空值保持为空字符串而不是 null。大文件应逐行写入而不是整体加载;生产使用还需校验字段类型和敏感数据处理。

验收清单

完成「Python CSV 转 JSON 转换器」后,按节点或操作步骤逐项自查:准备可复现的本地环境,执行文档中的命令,记录输出与失败信息,并确认权限、空数据和失败恢复路径都有对应证据。

代码示例

import argparse
import csv
import json


def convert(input_path: str, output_path: str) -> int:
    with open(input_path, newline="", encoding="utf-8") as source:
        rows = list(csv.DictReader(source))
    with open(output_path, "w", encoding="utf-8") as target:
        json.dump(rows, target, indent=2)
        target.write("\n")
    return len(rows)


def main() -> None:
    parser = argparse.ArgumentParser(description="Convert CSV to JSON")
    parser.add_argument("input")
    parser.add_argument("output")
    args = parser.parse_args()
    count = convert(args.input, args.output)
    print(f"converted {count} rows")


if __name__ == "__main__":
    main()
printf 'name,age\nAlice,30\nBob,41\n' > sample.csv
python csv_to_json.py sample.csv out.json
cat out.json