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

如何完整打印Google Translate API返回的长翻译文本?

解决Google Translate API长翻译文本截断问题

问题原因

你靠正则提取translatedText字段,长文本里的换行、转义引号(比如\")会打破正则的匹配规则,导致只抓到部分内容;另外如果请求时没正确传参,也可能让API返回不完整,但大概率是正则的锅。

修复方案

1. 别用正则了,直接解析JSON

Google Translate API返回的是标准JSON,用Python自带的json模块解析才靠谱,完全避免正则匹配的各种坑。

改完的代码示例:

import requests
import json

# 你的待翻译内容字典
texts_to_translate = {
    "id1": "简短测试文本",
    "id4": "这是一段非常长的测试文本,包含多个段落、换行符\n还有各种特殊字符,比如\"引号\"、斜杠\\之类的,用来验证长翻译是否能完整输出..."
}

# 替换成你的API密钥和目标语言
API_KEY = "your_api_key_here"
TARGET_LANG = "zh-CN"
API_URL = "https://translation.googleapis.com/language/translate/v2"

for item_id, raw_text in texts_to_translate.items():
    # 构造请求参数
    request_params = {
        "q": raw_text,
        "target": TARGET_LANG,
        "key": API_KEY
    }
    # 发请求拿响应
    resp = requests.get(API_URL, params=request_params)
    # 解析JSON
    translate_result = json.loads(resp.text)
    # 抽完整翻译文本
    full_translation = translate_result["data"]["translations"][0]["translatedText"]
    # 打印完整内容
    print(f"[{item_id}] 翻译结果:\n{full_translation}\n")

2. 非要用正则?调整匹配规则(不推荐)

如果实在得用正则,得改正则表达式,让它能匹配换行和转义引号:

import re

# 带DOTALL标志的正则,匹配所有字符包括换行,同时处理转义引号
match_pattern = r'"translatedText":\s*"((?:\\"|[^"])*)"'
match_obj = re.search(match_pattern, resp.text, re.DOTALL)
if match_obj:
    # 把转义引号还原成正常引号
    full_text = match_obj.group(1).replace('\\"', '"')
    print(full_text)

re.DOTALL让.能匹配换行,(?:\\"|[^"])*专门处理转义引号和普通字符,确保抓全整个翻译字段。

3. 检查长文本是否完整发送

如果是请求时文本被截断,试试用POST请求传参(GET对超长参数有长度限制):

request_data = {
    "q": raw_text,
    "target": TARGET_LANG,
    "key": API_KEY
}
resp = requests.post(API_URL, data=request_data)

重点提示

优先用JSON解析,正则只适合临时调试,面对复杂的JSON结构很容易翻车,这也是你长文本被截断的主要原因。

内容的提问来源于stack exchange,提问作者Ice-9

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:27:57