Python使用googletrans库翻译时如何仅提取返回的纯翻译文本
问题场景
使用Python的googletrans库编写命令行翻译工具时,直接打印translator.translate()方法的返回值,会输出包含源语言标识、目标语言标识、翻译文本、发音、额外数据的完整Translated对象,示例输出如下:
Translation > Translated(src=en, dest=es, text=Hola, pronunciation=None, extra_data="{'translat...")
当前使用的原始代码:
from googletrans import Translator # Taking input for language to be translated translate_from = input("What language would you like to translate from? ") translate_to = input("What language would you like to translate to? ") # Taking input for text to be translated translate_text = input("Please enter your text to be translated ... ") # translate languages translator=Translator() print("Translation > ", translator.translate(translate_text, src=translate_from, dest=translate_to))
需求是仅提取返回结果中的翻译文本,去除冗余输出,需要适合Python初学者的简单实现方式。
解决方法
Translated是googletrans定义的结构化结果类,翻译后的纯文本内容直接存储在实例的.text属性中,直接读取该属性就能拿到无多余信息的翻译结果,不需要做复杂的字符串切割处理。
修改后的完整代码仅调整了结果接收和打印的逻辑,改动量极小:
from googletrans import Translator # 输入源语言代码 translate_from = input("What language would you like to translate from? ") # 输入目标语言代码 translate_to = input("What language would you like to translate to? ") # 输入待翻译文本 translate_text = input("Please enter your text to be translated ... ") translator = Translator() # 接收翻译返回的结果对象 trans_res = translator.translate(translate_text, src=translate_from, dest=translate_to) # 仅打印纯翻译文本 print("Translation > ", trans_res.text)
补充说明
- 除了翻译文本外,结果对象的其他信息也可以通过属性直接读取:
- 源语言代码:
trans_res.src - 目标语言代码:
trans_res.dest - 发音信息(仅部分支持的语言会返回内容):
trans_res.pronunciation
- 源语言代码:
- 如果运行代码时出现接口调用报错,先卸载已安装的googletrans版本,执行如下命令安装稳定可用的候选版本即可:
pip install googletrans==4.0.0-rc1
内容的提问来源于stack exchange,提问作者Zayden Tibbets
相关产品推荐
相关产品推荐

