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

Python中如何将CSV文件列转换为JSON列数组格式

CSV转列数组格式JSON实现方案

原脚本存在的问题

  • 输出结构为逐行存储的字典列表,不符合列聚合的数组格式要求
  • 读取的CSV单元格值未做数值类型转换,全部为字符串类型
  • 存在语法错误:k字段定义后多了一个多余逗号
  • alpha字段取值逻辑错误,未读取行内对应值,错误写为固定列表
  • 缺失absorption_length字段的读取逻辑

可直接运行的正确代码

import csv
import json

# 初始化目标结构,每个字段对应一个空数组
output_data = {
    "wavelength": [],
    "n": [],
    "k": [],
    "alpha": [],
    "absorption_length": []
}

# 读取CSV文件
with open('test.csv', 'r', encoding='utf-8') as csv_file:
    reader = csv.DictReader(csv_file)
    for row in reader:
        # 将每个字段的值转为浮点数后,追加到对应数组
        output_data["wavelength"].append(float(row["wavelength"]))
        output_data["n"].append(float(row["n"]))
        output_data["k"].append(float(row["k"]))
        output_data["alpha"].append(float(row["alpha"]))
        output_data["absorption_length"].append(float(row["absorption_length"]))

# 写入JSON文件
with open('data.json', 'w', encoding='utf-8') as json_file:
    json.dump(output_data, json_file, indent=2)

关键逻辑说明

  • 预先定义好列名到空列表的映射,遍历CSV行时直接向对应列表追加值,最终直接输出该字典即可得到要求的列数组结构
  • 用float()对读取到的单元格值做类型转换,解决原脚本输出值全为字符串的问题
  • 写入JSON时传入indent=2参数,输出格式化后的缩进结构,和示例格式完全一致
  • 读写文件时显式指定encoding='utf-8',避免跨系统使用时出现编码乱码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:57:23