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

如何从Azure认知服务文本翻译API获取JSON响应及改造XML返回代码

如何让微软Azure认知服务文本翻译API返回JSON格式响应

嘿,我来帮你搞定这个问题!你当前用的是微软翻译API的v2版本,它默认返回XML格式数据,但只需要简单调整请求头,就能轻松获取JSON响应了。下面分两种情况给你说明:

方法1:修改现有v2 API调用(快速适配)

你的代码只需要添加一个Accept请求头,明确指定接受application/json格式,同时要注意去掉Authorization后面的多余空格(这个小疏忽可能会导致认证失败哦)。修改后的完整代码如下:

import requests

# 修正Authorization的空格问题,添加Accept头指定JSON格式
headers = {
    "Authorization": finalToken,
    "Accept": "application/json"
}
translateUrl = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text={}&to={}".format(textToTranslate, toLangCode)
translationData = requests.get(translateUrl, headers=headers)

# 直接解析JSON响应,无需再处理XML
translation_result = translationData.json()
# 提取翻译文本,v2的JSON响应中翻译内容在"Text"字段
print(translation_result["Text"])

方法2:升级到推荐的v3 API(更稳定、功能更全)

微软已经标记v2 API为即将弃用,官方主推v3版本的翻译API——它不仅默认支持JSON格式,还提供批量翻译、语言检测、音译等更多实用功能。这里给你一个v3 API的调用示例:

import requests

headers = {
    "Ocp-Apim-Subscription-Key": "你的API密钥",  # 直接用API密钥作为认证头更简单
    "Content-Type": "application/json",
    "Accept": "application/json"
}
params = {
    "api-version": "3.0",
    "to": toLangCode
}
# v3使用POST请求,请求体为数组,支持同时翻译多个文本
body = [{"Text": textToTranslate}]
translateUrl = "https://api.cognitive.microsofttranslator.com/translate"

response = requests.post(translateUrl, headers=headers, params=params, json=body)
translation_result = response.json()
# 提取翻译结果:v3的响应结构是数组,翻译内容在translations字段下
print(translation_result[0]["translations"][0]["text"])

小贴士:如果你的finalToken是令牌格式,v3也支持令牌认证,只需要把Ocp-Apim-Subscription-Key换成Authorization: Bearer {finalToken}就行。

内容的提问来源于stack exchange,提问作者Adit Dharia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:17:23