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

Python实现CSV转JSON输出格式不符,求代码修改建议

CSV转JSON输出格式不符修复方案

你的现有代码基础逻辑正确,输出和预期不一致可对照以下几点排查修改:

常见原因及修复方法

  • CSV表头与预期字段不匹配
    你需要保证CSV第一行的表头严格为id,MobileNo,不能有拼写错误、多余空格、其他多余列。如果CSV表头不符合要求,可直接修改CSV表头,也可以在代码中手动做字段映射,避免输出的JSON键名错误。
  • 存在多余字段需要过滤
    如果CSV中存在除id、MobileNo之外的多余列,不需要输出到JSON中,可在遍历行时手动构造只包含所需字段的字典,丢弃多余内容。
  • 字段类型不符合预期
    可手动将字段值转为字符串类型,避免id等字段输出为数字格式,和预期的字符串格式不匹配。
  • CSV分隔符不是默认逗号
    如果你的CSV用分号、制表符等作为分隔符,需要在csv.DictReader中指定delimiter参数,比如制表符传delimiter='\t',分号传delimiter=';'。

修复后完整代码

import csv
import json 

def csv_to_json(csvFilePath, jsonFilePath):
    jsonArray = []
      
    with open(csvFilePath, encoding='utf-8') as csvf: 
        # 若CSV分隔符非逗号,在此处添加delimiter参数指定
        csvReader = csv.DictReader(csvf) 
        for row in csvReader: 
            # 手动构造目标格式字典,过滤多余字段、统一字段类型
            formatted_row = {
                "id": str(row["id"]),
                "MobileNo": str(row["MobileNo"])
            }
            jsonArray.append(formatted_row)
  
    with open(jsonFilePath, 'w', encoding='utf-8') as jsonf: 
        # 添加ensure_ascii=False避免特殊字符乱码
        json.dump(jsonArray, jsonf, indent=4, ensure_ascii=False)

if __name__ == "__main__":
    csvFilePath = r'my_csv_data.csv'
    jsonFilePath = r'data.json'
    csv_to_json(csvFilePath, jsonFilePath)

测试用CSV示例

你可以使用以下内容的my_csv_data.csv测试代码,输出结果会和你给出的预期格式完全一致:

id,MobileNo
1,923002546363
2,923343676143

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:54:05