使用googletrans翻译DataFrame列时报NoneType无group属性如何解决
报错原因
该报错的核心触发原因是你使用的官方原版googletrans库已停止维护,适配的谷歌翻译网页接口结构已发生变更,库内用于提取TKK令牌的正则表达式无法匹配到目标内容,返回None值后调用group()方法就触发了属性错误。
次要可能原因包括:网络无法正常访问谷歌翻译服务、短时间内请求频率过高被接口临时限制、comments列存在空值/非字符串类异常内容。
解决方案
按以下步骤操作即可解决问题:
- 第一步:卸载原有旧版本的googletrans
执行命令:pip uninstall googletrans -y - 第二步:安装社区维护的适配版googletrans
该版本已修复接口匹配问题,执行命令:pip install googletrans==4.0.0-rc1 - 第三步:优化代码逻辑,增加异常处理、空值兼容和限流间隔,避免二次报错
优化后代码如下:
import pandas as pd import time from googletrans import Translator # 初始化翻译器 translator = Translator() def safe_translate(text): # 兼容空值、空白内容、非字符串内容 if pd.isna(text) or not isinstance(text, str) or text.strip() == "": return "" try: result = translator.translate(text, dest = 'en') # 增加短间隔避免触发接口限流 time.sleep(0.2) return result.text except Exception as e: # 翻译出错时返回原文本,也可根据需要替换为错误标记 print(f"翻译异常,原文本前50位:{text[:50]}...,错误信息:{str(e)}") return text df_review['trans_reviews'] = df_review['comments'].apply(safe_translate)
如果执行上述操作后仍然报错,可确认网络是否可正常访问谷歌翻译服务,无法访问的情况下可替换为百度翻译、DeepL等公开翻译API实现需求。
内容的提问来源于stack exchange,提问作者TWG
相关产品推荐
相关产品推荐

