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

如何用Google Cloud Translate翻译Taskmaster-2航班领域嵌套JSON的text字段

如何用Google Cloud Translate翻译Taskmaster-2航班数据集嵌套JSON中的"text"字段

前置准备

  • 启用Google Cloud Translate API:在Google Cloud控制台搜索并启用Translate API,创建服务账号并下载密钥JSON文件,设置环境变量:
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    
  • 安装Python客户端库:
    pip install google-cloud-translate==2.0.1
    

核心实现步骤

Taskmaster-2的JSON是深度嵌套结构(比如utterances数组内的对象、segments数组内的对象都包含text字段),需要递归遍历整个JSON结构,定位所有text字段并调用翻译API替换内容。

以下是完整的Python代码示例(以英文转孟加拉语为例):

import json
from google.cloud import translate_v2 as translate

# 初始化翻译客户端
translate_client = translate.Client()

def translate_text_field(value, target_lang="bn", source_lang="en"):
    """递归遍历JSON值,翻译所有"text"字段"""
    if isinstance(value, dict):
        for key, val in value.items():
            if key == "text":
                # 调用翻译API
                result = translate_client.translate(val, target_language=target_lang, source_language=source_lang)
                value[key] = result["translatedText"]
            else:
                # 递归处理嵌套结构
                translate_text_field(val, target_lang, source_lang)
    elif isinstance(value, list):
        for item in value:
            translate_text_field(item, target_lang, source_lang)
    return value

def main():
    # 读取原始JSON文件
    with open("original_flight_data.json", "r", encoding="utf-8") as f:
        data = json.load(f)
    
    # 翻译所有text字段
    translated_data = translate_text_field(data, target_lang="bn")
    
    # 保存翻译后的JSON文件
    with open("translated_flight_data.json", "w", encoding="utf-8") as f:
        json.dump(translated_data, f, ensure_ascii=False, indent=2)

if __name__ == "__main__":
    main()

代码说明

  1. 递归遍历函数:translate_text_field会遍历JSON的每个元素,如果是字典且键为text,则调用Translate API翻译内容;如果是字典或列表,继续递归处理内部结构,确保所有嵌套的text字段都被翻译。
  2. API调用:使用Google Cloud Translate的v2版本客户端,指定源语言en和目标语言bn(孟加拉语的语言代码),翻译结果直接替换原text字段的值。
  3. 文件读写:读取原始JSON时用utf-8编码,保存时设置ensure_ascii=False以保留孟加拉语的Unicode字符,indent=2保证输出JSON格式和原文件一致。

注意事项

  • API配额与费用:Google Cloud Translate有免费配额,超出后会产生费用,建议提前查看控制台的配额限制。
  • 批量优化:如果数据集很大,建议将多个text字段的内容批量提交翻译,减少API请求次数,提高效率。
  • 结构一致性:代码会保留原JSON的所有其他字段(如conversation_id、segments内的start_index等),仅替换text字段内容,和你提供的示例输出结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:40:22