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

Python调用googletrans翻译时translate()缺失text参数等错误问询

报错原因及解决方法

报错原因

  • 第一种报错translate() missing 1 required positional argument: 'text'
    存在两个问题:一是调用apply时直接执行了translator.translate()方法,没有把Series的每个元素作为待翻译文本传入方法;二是参数名错误,googletrans的translate方法源语言参数为src、目标语言参数为dest,并非你写的lang_src、lang_tgt,参数传递错误导致方法识别不到待翻译的text入参。
  • 第二种报错'NoneType' object has no attribute 'group'
    存在两个问题:一是translator.translate()不支持直接传入pandas Series对象作为翻译输入;二是默认安装的googletrans版本(通常为4.0.0rc1)存在接口兼容问题,谷歌翻译接口返回结构变更后旧版本无法正常解析,返回空值后触发属性调用报错。

修复方案

第一步:安装兼容的googletrans版本

卸载原有版本后安装稳定适配版:

pip uninstall googletrans -y
pip install googletrans==3.1.0a0

第二步:修改批量翻译代码

通过apply逐行传入待翻译文本,增加异常捕获避免个别请求失败中断任务,同时支持批量生成三个目标语言的翻译结果:

import googletrans
from googletrans import Translator
import pandas as pd

# 初始化翻译器,设置超时避免请求挂起
translator = Translator(timeout=10)

# 注意你的数据集列名为English Test,不要和示例代码里的列名写混
# 定义通用翻译函数
def translate_text(text, src_lang='en', dest_lang='ms'):
    try:
        result = translator.translate(text, src=src_lang, dest=dest_lang)
        return result.text
    except Exception as e:
        print(f"翻译失败内容:{text},错误信息:{e}")
        return None

# 批量生成三种语言翻译结果
df['马来语翻译'] = df['English Test'].apply(translate_text, dest_lang='ms')
df['西班牙语翻译'] = df['English Test'].apply(translate_text, dest_lang='es')
df['俄语翻译'] = df['English Test'].apply(translate_text, dest_lang='ru')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:54:03