How to resolve TranslationError: DeepL call resulted in a unknown result? Python Pydeepl
How to resolve TranslationError: DeepL call resulted in a unknown result? Python Pydeepl
我想使用 pydeepl 来翻译 python 上的一些句子。我已经安装了 pydeepl 并复制了与该库主页相同的代码:
import pydeepl
sentence = 'I like turtles.'
from_language = 'EN'
to_language = 'ES'
translation = pydeepl.translate(sentence, to_language, from_lang=from_language)
print(translation)
不幸的是我得到了这个错误:
TranslationError:DeepL 调用导致未知结果。
有人可以帮忙吗?提前致谢!
看来 API 只有付费才能使用,不再免费了...
编辑:DeepL Python Library
MrGuemez is partially right, requests only go through an official DeepL api key now. That being said, they have both paid and free versions.
DeepL 免费 API 有 500,000 character/Mo。限制,而付费版本的固定费用为 5 美元/月,另外还有 20/20,000,000 美元的字符。如果你担心在付费版本中超出成本,DeepL 提供了一个成本控制设置,你可以设置它以确保你不会超过某个货币上限。
现在不仅有免费版本的 API,还有官方的 DeepL Python 库:
运行一个简单的
pip install deepl
你可以很容易地开始:如果你不关心硬编码你的 auth_key 你可以这样声明一个翻译器对象:
translator = deepl.Translator("DEEPL_AUTH_KEY")
如果您不想对其进行硬编码,您可以通过这种方式将其设置为环境变量:translator = deepl.Translator(os.getenv("DEEPL_AUTH_KEY"))
)
然后您可以像这样轻松翻译字符串文本:
# (Taken from the documentation)
# Translate text into a target language, in this case, French
result = translator.translate_text("Hello, world!", target_lang="FR")
print(result) # "Bonjour, le monde !"
和多个像这样的字符串:
# (Taken from the documentation)
# Translate multiple texts into British English
result = translator.translate_text(["お元気ですか?", "¿Cómo estás?"], target_lang="EN-GB")
print(result[0].text) # "How are you?"
print(result[0].detected_source_lang) # "JA"
print(result[1].text) # "How are you?"
print(result[1].detected_source_lang) # "ES"
如果您需要翻译完整的文档,您也可以将它们传递给:
translator.translate_document_from_filepath(
"path/to/write/to/WhatABeautifulDay.docx", # Translated File
"path/to/original/CheBellissimaGiornata.docx", # Original File
target_lang="EN-US"
)
附带说明一下,DeepL“EN”选项已弃用,您现在必须在请求中使用“EN-US”或“EN-GB”。
OUTDATED(仍然适用于翻译字符串)
要在 python 中使用 api 键,您必须按如下方式构建查询:
import requests
raw_returned_data = requests.post(
url="https://api.deepl.com/v2/translate",
data={
"target_lang": "EN",
"auth_key": auth_key, # where auth key is your api key
"text": data # you can pass in a hard coded string or variable
},
)
并查看响应:
returned_data = raw_returned_data.json()["translations"][0]["text"]
我想使用 pydeepl 来翻译 python 上的一些句子。我已经安装了 pydeepl 并复制了与该库主页相同的代码:
import pydeepl
sentence = 'I like turtles.'
from_language = 'EN'
to_language = 'ES'
translation = pydeepl.translate(sentence, to_language, from_lang=from_language)
print(translation)
不幸的是我得到了这个错误:
TranslationError:DeepL 调用导致未知结果。
有人可以帮忙吗?提前致谢!
看来 API 只有付费才能使用,不再免费了...
编辑:DeepL Python Library MrGuemez is partially right, requests only go through an official DeepL api key now. That being said, they have both paid and free versions.
DeepL 免费 API 有 500,000 character/Mo。限制,而付费版本的固定费用为 5 美元/月,另外还有 20/20,000,000 美元的字符。如果你担心在付费版本中超出成本,DeepL 提供了一个成本控制设置,你可以设置它以确保你不会超过某个货币上限。 现在不仅有免费版本的 API,还有官方的 DeepL Python 库:
运行一个简单的
pip install deepl
你可以很容易地开始:如果你不关心硬编码你的 auth_key 你可以这样声明一个翻译器对象:
translator = deepl.Translator("DEEPL_AUTH_KEY")
如果您不想对其进行硬编码,您可以通过这种方式将其设置为环境变量:translator = deepl.Translator(os.getenv("DEEPL_AUTH_KEY"))
)
然后您可以像这样轻松翻译字符串文本:
# (Taken from the documentation)
# Translate text into a target language, in this case, French
result = translator.translate_text("Hello, world!", target_lang="FR")
print(result) # "Bonjour, le monde !"
和多个像这样的字符串:
# (Taken from the documentation)
# Translate multiple texts into British English
result = translator.translate_text(["お元気ですか?", "¿Cómo estás?"], target_lang="EN-GB")
print(result[0].text) # "How are you?"
print(result[0].detected_source_lang) # "JA"
print(result[1].text) # "How are you?"
print(result[1].detected_source_lang) # "ES"
如果您需要翻译完整的文档,您也可以将它们传递给:
translator.translate_document_from_filepath(
"path/to/write/to/WhatABeautifulDay.docx", # Translated File
"path/to/original/CheBellissimaGiornata.docx", # Original File
target_lang="EN-US"
)
附带说明一下,DeepL“EN”选项已弃用,您现在必须在请求中使用“EN-US”或“EN-GB”。
OUTDATED(仍然适用于翻译字符串)
要在 python 中使用 api 键,您必须按如下方式构建查询:
import requests
raw_returned_data = requests.post(
url="https://api.deepl.com/v2/translate",
data={
"target_lang": "EN",
"auth_key": auth_key, # where auth key is your api key
"text": data # you can pass in a hard coded string or variable
},
)
并查看响应:
returned_data = raw_returned_data.json()["translations"][0]["text"]