【问题标题】:List object has no attribute 'detectedLanguage'列表对象没有属性“detectedLanguage”
【发布时间】:2021-03-31 22:29:53
【问题描述】:

我正在使用 microsoft azure translate api 来检测和翻译用户输入的语言并将其翻译回英文。翻译后,我将结果打印成 json 格式,可以在这里看到:https://i.stack.imgur.com/Zcq9l.png

之后,我尝试打印 'text:' 位之后翻译的任何内容,但是,每次尝试这样做时都会出现错误。我尝试使用 for 循环并引用它们,但它不起作用。

这里是代码位:

path = '/translate'
constructed_url = endpoint + path

params = {
'api-version': '3.0',
'to': ['en']
}

constructed_url = endpoint + path

headers = {
'Ocp-Apim-Subscription-Key': subscription_key,
'Ocp-Apim-Subscription-Region': location,
'Content-type': 'application/json',
'X-ClientTraceId': str(uuid.uuid4())
 }   

user_input = input("You: ")
body = [{
  "text": user_input
  }]

request = requests.post(constructed_url, params=params, headers=headers, json=body)
response = request.json()
json_data = json.dumps(response, sort_keys=True, ensure_ascii=False, indent=4, separators=(",", ": "))
print(json_data)

print("Translated Text: " + response.detectedLanguage.translations.text)

最后一行是导致错误的原因,但我不确定如何解决它。如果有人可以相应地指导我,我将不胜感激。 [1]:https://i.stack.imgur.com/Zcq9l.png

【问题讨论】:

  • 您需要使用[] 语法访问响应列表/字典,如下所示;点语法适用于 JavaScript,而不是 Python。
  • 感谢您的有用评论

标签: python artificial-intelligence microsoft-translator


【解决方案1】:

该对象是一个字典列表(在这种情况下只有一个)。如链接图片所示。

在这种特殊情况下,要获得翻译文本,您需要这样做:

response[0]["translations"]["text"]

【讨论】:

  • 啊,我明白了。感谢您的指导,非常感谢。
  • 不要忘记将答案标记为已接受,如果它解决了您的问题 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 2021-05-25
  • 2022-01-20
  • 1970-01-01
  • 2018-01-16
  • 2022-01-19
相关资源
最近更新 更多