You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将复杂CSV文件转换为指定格式的JSON?

解决CSV转JSON时指定字段数组化与引号转义问题

核心思路

  1. 读取CSV时保留字段映射,对目标字段做字符串分割转数组
  2. 利用Python内置json模块自动处理引号转义,无需手动添加转义字符

完整代码实现

import csv
import json

# 定义需要转为数组的目标字段
TARGET_FIELDS = {'population_mesh', 'population', 'intervention', 'Outcomes'}

def csv_to_json(csv_file_path, json_file_path):
    data = []
    with open(csv_file_path, mode='r', encoding='utf-8') as csv_file:
        csv_reader = csv.DictReader(csv_file)
        for row in csv_reader:
            processed_row = {}
            for key, value in row.items():
                if key in TARGET_FIELDS:
                    # 处理空值:空字符串转为空数组
                    if not value.strip():
                        processed_row[key] = []
                    else:
                        # 假设CSV中数组元素用逗号分隔,可根据实际调整分隔符
                        processed_row[key] = [item.strip() for item in value.split(',')]
                else:
                    processed_row[key] = value
            data.append(processed_row)
    
    # 写入JSON,json模块自动处理双引号转义
    with open(json_file_path, mode='w', encoding='utf-8') as json_file:
        json.dump(data, json_file, ensure_ascii=False, indent=2)

# 调用示例(替换为你的文件路径)
csv_to_json('input.csv', 'output.json')

关键说明

  • 字段数组化:默认按逗号分割字符串,若CSV中数组元素用其他分隔符(如分号),只需修改value.split(',')中的分隔符即可
  • 引号转义:json.dump会自动处理字符串中的双引号,比如原字符串中的"abc"会被序列化为\"abc\",完全符合JSON格式要求
  • 空值处理:针对空字符串字段转为空数组,避免出现null或无效数组格式

内容的提问来源于stack exchange,提问作者hpatel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 07:45:51