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

如何将多语言文本CSV转换为指定语言的嵌套JSON文件?

多语言CSV转指定语言JSON的最优方案

我有一个包含网站多语言文本的CSV文件,示例如下:

Group,Key,EN,NL
Global,yes,yes,ja
Global,no,no,neen
Menu,openMenu,Open menu,Open menu
Menu,signUp,Sign up,Registreer

需要将其转换为对应语言的独立JSON文件,例如荷兰语(NL)的目标格式为:

{
    "global": {
        "yes": "ja",
        "no": "nee"
    },
    "menu": {
        "openMenu": "Open menu",
        "signUp": "Registreer"
    }
}

我的需求是:仅手动指定目标语言(如EN或NL)就能完成转换。之前尝试过在线JSON转换工具自定义模板,但要么出现重复键,要么生成的JSON结构不符合要求;研究过JMESPath,但CSV数据量太大,不想手动输入每个键,没找到可行方案;知道这类问题大多用Python解决,但我完全没Python经验。想请教:把原CSV转成所需JSON格式,或者对转换工具生成的JSON进行格式化的最优方法是什么?


方案1:Excel/Google Sheets手动整理(适合小数据量)

  • 只保留Group、Key和目标语言列(比如NL),删掉其他语言列
  • 把Group列的内容改成小写
  • 按Group列分组,每个分组下把Key作为键、目标语言内容作为值,整理成嵌套的键值对
  • 最后用在线JSON格式化工具把整理好的结构转成标准JSON文件

方案2:用Excel内置Power Query工具(无代码,适合中大数据量)

  1. 用Excel打开CSV文件,点「数据」选项卡 → 「从表格/范围」导入数据(勾选「我的表格有标题」)
  2. 在Power Query编辑器里,删掉不需要的语言列,只留Group、Key和目标语言列
  3. 点「转换」选项卡 → 「分组依据」,设置:
    • 分组依据:Group
    • 新列名:Rows
    • 操作:所有行
  4. 新增自定义列,公式输入 = Record.FromTable([Rows]),把每个分组的行转成键值对结构
  5. 删除Rows列,再把Group列转成小写(右键Group列 → 「格式」→ 「小写」)
  6. 点「主页」→「关闭并上载至」,选择「仅创建连接」,然后右键该连接 → 「导出到JSON」,就能得到符合要求的文件

方案3:极简Python脚本(无经验也能快速上手)

即使完全不懂Python,按以下步骤操作就行:

  1. 去Python官网下载安装包,安装时一定要勾选「Add Python to PATH」
  2. 在CSV文件所在文件夹里,新建一个文本文件,改名为csv_to_json.py,复制下面的代码进去:
import csv
import json
import sys

def convert_csv_to_json(csv_file, target_lang):
    result = {}
    with open(csv_file, 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for row in reader:
            group = row['Group'].lower()
            key = row['Key']
            value = row[target_lang]
            if group not in result:
                result[group] = {}
            result[group][key] = value
    output_file = f"{target_lang}.json"
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump(result, f, indent=4, ensure_ascii=False)
    print(f"已成功生成{output_file}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("用法:python csv_to_json.py <你的CSV文件名> <目标语言代码>")
        print("示例:python csv_to_json.py translations.csv NL")
        sys.exit(1)
    csv_file = sys.argv[1]
    target_lang = sys.argv[2]
    convert_csv_to_json(csv_file, target_lang)
  1. 打开命令提示符(Windows)或终端(Mac/Linux),切换到这个文件夹,运行命令:
    python csv_to_json.py 你的CSV文件名.csv NL
    
    把你的CSV文件名.csv换成实际的文件名,NL换成你需要的语言代码(比如EN),回车后就能自动生成对应语言的JSON文件

内容的提问来源于stack exchange,提问作者Sarah Van Den Berghe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:18:19