项目说明
项目只使用 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