Python中如何将编码值转可读英文并翻译多语言公司名称
需求可行性说明
该需求完全可实现,整体分为转义编码解码、多语言翻译两个核心步骤,具体实现方法如下:
步骤1:依赖安装
需要用到的工具库如下,可直接执行命令安装:
pip install pandas googletrans==4.0.0-rc1
注:googletrans指定4.0.0-rc1版本是为了规避正式版的接口兼容问题,如果需要更高的翻译准确率也可以替换为DeepL、百度翻译等商用接口的Python SDK
步骤2:转义编码解码
你的数据中包含两类转义编码:<U+XXXX>格式的Unicode码点、<XX>格式的Latin-1十六进制编码,可通过正则匹配实现通用解码:
import pandas as pd import re from googletrans import Translator # 自定义解码函数 def decode_company_name(s): # 处理<U+XXXX>格式的Unicode编码 def replace_unicode(match): code = match.group(1) return chr(int(code, 16)) s = re.sub(r'<U\+([0-9A-Fa-f]{4})>', replace_unicode, s) # 处理<XX>格式的Latin-1十六进制编码 def replace_hex(match): hex_code = match.group(1) return bytes.fromhex(hex_code).decode('latin-1') s = re.sub(r'<([0-9A-Fa-f]{2})>', replace_hex, s) return s # 初始化示例DataFrame data = [['company1', '<U+042E><U+043F><U+0438><U+0442><U+0435><U+0440>'], ['company2', '<c1>lom<e9>kszer Kft.'], ['company3', 'Ernst and young'], ['company4', '<c5>bo Akademi']] df = pd.DataFrame(data, columns = ['Name', 'company_name']) # 执行解码得到可读的多语言字符串 df['decoded_name'] = df['company_name'].apply(decode_company_name)
解码后结果对应:
- company1得到俄文:Юпитер
- company2得到匈牙利文:Álomékszer Kft.
- company3无转义编码保持不变:Ernst and young
- company4得到瑞典文:Åbo Akademi
步骤3:批量翻译为英文
直接调用翻译接口实现多语言到英文的转换,已经是英文的内容会自动保留原文:
translator = Translator() def translate_to_english(s): try: translate_res = translator.translate(s, dest='en') return translate_res.text except: # 接口调用异常时返回原字符串,避免任务中断 return s df['english_name'] = df['decoded_name'].apply(translate_to_english)
翻译后结果对应:
- 俄文Юпитер翻译为:Jupiter
- 匈牙利文Álomékszer Kft.翻译为:Dream Machinery Ltd.
- Ernst and young保持不变
- 瑞典文Åbo Akademi翻译为通用官方译名:Åbo Akademi University
注意事项
- 解码逻辑兼容中日韩等所有Unicode覆盖的文字,无需额外调整
- 批量处理数据量较大时,建议给翻译逻辑加随机延迟,避免触发接口限流
- 如果遇到其他格式的转义字符,只需要新增对应的正则匹配规则即可扩展解码能力
内容的提问来源于stack exchange,提问作者user13227382
相关产品推荐
相关产品推荐

