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

Python3实现多行CSV转JSON:为字段键添加MMSA前缀重复标识

回答

没问题,只需要在遍历每一行CSV数据时,给除MMSA之外的所有字段键加上对应行的MMSA值作为前缀就可以实现需求了。下面是修改后的完整代码:

import csv
import json

def make_json(csvFilePath, jsonFilePath):
    data = {}
    with open(csvFilePath, encoding='utf-8') as csvf:
        csvReader = csv.DictReader(csvf)
        for row in csvReader:
            mmsa_value = row['MMSA']
            # 初始化转换后的行,保留原始MMSA字段
            transformed_row = {'MMSA': mmsa_value}
            # 遍历所有字段,给非MMSA字段添加前缀
            for key, value in row.items():
                if key != 'MMSA':
                    new_key = f"{mmsa_value} {key}"
                    transformed_row[new_key] = value
            # 将转换后的行存入数据字典
            data[mmsa_value] = transformed_row
    # 写入JSON文件,保持格式化缩进
    with open(jsonFilePath, 'w', encoding='utf-8') as jsonf:
        jsonf.write(json.dumps(data, indent=4))

csvFilePath = r'/home/user/Downloads/mmsa-icu-beds.csv'
jsonFilePath = r'/home/user/Downloads/mmsa-icu-beds.json'
make_json(csvFilePath, jsonFilePath)

代码说明

  1. 首先提取当前行的MMSA值,作为后续字段的前缀来源
  2. 创建一个新的字典transformed_row,先保留原始的MMSA字段不变
  3. 遍历该行的所有字段,对非MMSA的字段,用f-string拼接出新的键名(MMSA值 + 原始字段名),并把对应的键值对加入新字典
  4. 最后把转换后的行存入data字典,再写入JSON文件

这样处理后,生成的JSON就会和你期望的格式完全一致,而且可以轻松处理数百行的CSV数据,不会有性能问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 03:23:15