解决Python googletrans报错:'NoneType'对象无'group'属性
解决googletrans翻译时出现的AttributeError: 'NoneType' object has no attribute 'group'错误
常见原因及对应解决办法
1. googletrans版本兼容问题
googletrans 4.0+版本改用了新API,容易触发这类正则匹配错误,建议降级到稳定的旧版本:
pip uninstall googletrans -y pip install googletrans==3.1.0a0
2. 清洗空值或无效文本
如果job_title字段存在空字符串、None或仅含特殊字符的内容,langdetect或googletrans处理时会报错,先做数据清洗:
import pandas as pd from langdetect import detect, LangDetectException from googletrans import Translator df = pd.read_csv('jobs.csv') # 填充空值并过滤无意义文本 df['job_title'] = df['job_title'].fillna('').astype(str) df = df[df['job_title'].str.strip() != ''] translator = Translator() def translate_title(title): try: lang = detect(title) if lang != 'en': translated = translator.translate(title, dest='en') return translated.text return title except (LangDetectException, Exception) as e: print(f"处理失败: {title}, 错误: {e}") return title df['translated_job_title'] = df['job_title'].apply(translate_title) df.to_csv('translated_jobs.csv', index=False)
3. 避免请求频率触发限制
googletrans免费API有请求频率限制,频繁请求会导致返回异常,可添加延迟:
import time def translate_title(title): try: lang = detect(title) if lang != 'en': time.sleep(0.5) # 添加0.5秒延迟降低请求频率 translated = translator.translate(title, dest='en') return translated.text return title except (LangDetectException, Exception) as e: print(f"处理失败: {title}, 错误: {e}") return title
内容的提问来源于stack exchange,提问作者Naz
相关产品推荐
相关产品推荐

