Python 小程序实现 CSV 到 JSON 的格式化转换


正文:

在现代数据处理场景中,CSV文件因其结构清晰、易于处理的特点被广泛应用,而JSON格式则因其结构紧凑、跨平台兼容性高成为数据存储的首选。本项目实现的功能是将本地路径为 data.csv 的 CSV 文件格式转换为 JSON 格式并保存为 output.json,确保数据格式规范化和可持久化。


一、问题需求分析

本程序需要实现以下核心功能:

  1. 读取 CSV 文件:读取本地路径为 data.csv 的 CSV 文件,支持任意列名(如姓名、年龄等)。
  2. 数据格式化:将读取的数据结构化为 JSON 格式,确保键值对的正确性。
  3. 文件写入:将处理后的 JSON 内容保存到指定路径 output.json,并确保文件权限正确。

二、核心实现思路

1. 文件读取与数据处理

使用 Python 的 csv 模块读取 CSV 文件,通过 pandas 或手动处理来创建字典结构。由于要求本地环境可运行,无需依赖外部库,因此手动处理更安全:

import csv

# 读取 CSV 文件
def read_csv(file_path, header=None):
    with open(file_path, 'r', newline='') as f:
        reader = csv.reader(f)
        data = {row[i]: row[i] for i, row in enumerate(reader)}
        return data

# 示例用法
csv_data = read_csv('data.csv')
print(csv_data)

此方法返回的字典结构将键对应原始数据列名,值对应原始数据内容,无需额外处理即可直接写入 JSON。

2. JSON 格式化

使用 json 模块将字典转换为 JSON 格式:

import json

# 将字典转换为 JSON 字符串
def save_to_json(data, output_path):
    with open(output_path, 'w', encoding='utf-8') as f:
        json.dump(data, f)

3. 文件写入与权限验证

确保文件路径正确,使用 with 语句自动关闭文件,避免资源泄漏。同时验证文件写入权限,例如通过 os.path 检查文件是否存在:

import os

def save_file_with_check(path, data):
    if not os.path.exists(path):
        os.makedirs(os.path.dirname(path), exist_ok=True)
    with open(path, 'w', encoding='utf-8') as f:
        json.dump(data, f)

三、完整代码实现

import csv
import json

def read_csv(file_path, header=None):
    with open(file_path, 'r', newline='', encoding='utf-8') as f:
        reader = csv.reader(f)
        data = {row[i]: row[i] for i, row in enumerate(reader)}
        return data

def save_to_json(data, output_path):
    with open(output_path, 'w', encoding='utf-8') as f:
        json.dump(data, f)

def main():
    data_path = 'data.csv'
    output_path = 'output.json'

    csv_data = read_csv(data_path)
    save_to_json(csv_data, output_path)

if __name__ == "__main__":
    main()

四、总结与学习要点

本项目实现了 CSV 到 JSON 格式的格式化转换,核心知识点包括文件读写、数据结构处理和文件权限验证。通过本地环境可运行,可在 1~3 天内完成学习,重点掌握文件读写逻辑、数据格式转换以及文件权限管理。