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

Python从CSV生成JSON:修正格式问题(去尾逗号、加首尾括号)

解决CSV转JSON格式问题的正确姿势

嘿,我太懂你手动拼JSON格式时踩的这些坑了——最后一个元素的逗号删不掉、首尾括号重复、还要手动跳表头,简直头大!其实根本不用这么麻烦,Python自带的csv和json模块就能完美解决这些问题,完全不用手动拼接字符串。

核心思路:用字典列表直接生成标准JSON

正确的做法是先把CSV数据(跳过表头)转换成字典列表,然后直接用json模块写入文件,它会自动帮我们处理所有格式细节:

import csv
import json

# 1. 读取CSV并转换为字典列表(自动跳过表头)
csv_data = []
with open("你的输入文件.csv", "r", encoding="utf-8") as csv_file:
    # DictReader会把CSV第一行作为字典的键,后续行自动转为键值对
    csv_reader = csv.DictReader(csv_file)
    for row in csv_reader:
        csv_data.append(row)

# 2. 写入标准JSON格式
with open("你的输出文件.json", "w", encoding="utf-8") as json_file:
    # json.dump会自动生成[{},{},...]格式,处理逗号和括号
    json.dump(csv_data, json_file, indent=4)  # indent=4是格式化换行,可选

为什么这能解决你的所有问题?

  • 自动处理逗号和括号:json.dump()会严格按照JSON规范生成数组格式,不会出现最后一个元素多逗号、重复加[]的情况。
  • 自动跳过表头:csv.DictReader默认把第一行作为字段名,遍历的时候直接从第二行数据开始,完美跳过表头。
  • 类型灵活处理:如果需要把CSV里的字符串数字转成数值类型,只需要在遍历行的时候加几行处理代码就行,比如:
    for row in csv_reader:
        # 把"age"字段从字符串转成整数
        row["age"] = int(row["age"])
        # 把"salary"字段从字符串转成浮点数
        row["salary"] = float(row["salary"])
        csv_data.append(row)
    

别再手动拼JSON字符串啦,内置模块已经帮我们把所有格式问题都搞定了,省心又靠谱!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:03:29