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

如何使用Azure客户端库向认知服务翻译API发送指定JSON输入?

Azure Cognitive Services文本翻译客户端库调用问题解决

你在使用Azure Cognitive Services文本翻译时,直接调用REST API发送data = [{"text":"Good Morning"},{"text":"Good night"}]格式的JSON数据可以成功,但使用Azure官方客户端库调用时报错string index out of range,想知道如何通过客户端库实现对应功能及正确写法。

你的报错代码:

#This is my code.

from azure.ai.translation.text import TextTranslationClient

client = TextTranslationClient(endpoint, credential)
result = client.translate(to=["de"], input=data)

问题原因

Azure文本翻译客户端库的translate方法中,input参数接受的是纯文本字符串列表,而非REST API要求的包含text字段的字典数组。直接传入[{"text":"..."}]格式的数据会导致客户端库解析时出错,抛出string index out of range异常。

解决方案

方案一:调整输入格式为纯文本列表

直接将输入数据转换为字符串列表,符合客户端库的参数要求:

from azure.ai.translation.text import TextTranslationClient

# 调整输入格式为纯文本列表
data = ["Good Morning", "Good night"]
client = TextTranslationClient(endpoint, credential)
result = client.translate(to=["de"], input=data)

# 处理翻译结果
for document in result:
    print(f"原文本: {document.source_text}")
    print(f"德语翻译: {document.translations[0].text}\n")

方案二:从原有JSON结构中提取文本字段

如果必须保留原有[{"text":"..."}]的数据源格式,可以先提取其中的text字段值组成列表:

from azure.ai.translation.text import TextTranslationClient

# 原有JSON格式数据
data = [{"text":"Good Morning"},{"text":"Good night"}]
# 提取text字段组成列表
text_list = [item["text"] for item in data]

client = TextTranslationClient(endpoint, credential)
result = client.translate(to=["de"], input=text_list)

# 处理翻译结果
for idx, document in enumerate(result):
    print(f"原文本: {data[idx]['text']}")
    print(f"德语翻译: {document.translations[0].text}\n")

内容的提问来源于stack exchange,提问作者Amol Kamble

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:10:56