如何使用 Python 将多个“文本”参数传递给 DeepL API?

问题描述

我正在尝试使用 Python 3 的 requests 库通过 DeepL API 传递多个文本变量,但目前还无法将多个文本参数传递给请求。 documentation 声明“在一个请求中最多可以提交 50 个文本参数”,但是在尝试使用 "&text": 和常规 "text": 键传递多个文本变量后,该调用仅返回一个单译。

作为参考,这是我使用的代码

two_s = r.post(url="https://api.deepl.com/v2/translate",data={"target_lang": "EN","auth_key": auth_key,"text": s2t1,"text":s2t2})

two_s = r.post(url="https://api.deepl.com/v2/translate","&text":s2t2})

其中 auth_key 是我的身份验证密钥,s2t1s2t2 是不同的“字符串 2 翻译”。如何使用 Python 将多个 "text": 参数传递给 DeepL API?

解决方法

编辑:我试图将 s2t1 和 s2t2 作为元素列表传递给 text,如 Martijn Pieters (Martijn Pieters) 对 this 问题的回答中所述,并且两个字符串都被翻译和由服务器返回。这是我用来提出该请求的代码:

both_s = r.post(url="https://api.deepl.com/v2/translate",data={"target_lang": "EN","auth_key": auth_key,"text": [s2t1,s2t2]})

其中 auth_key 是我的 DeepL 身份验证密钥。

编辑:还值得注意的是,DeepL 一次可以翻译大约 5000 个字符的限制,因此虽然可以将多个字符串传递给 text 参数,但简单地传递整个字符串会更容易。我会做一些在文本中传递完整 4800 个字符串的效率分析和一个通过字符串拆分列表的测试并进一步更新。

,

您可以将元组列表作为 data 属性传递。
经过一些回声服务的测试后,它似乎可以使用同一个“键”的多个值。

r.post(
    url="https://api.deepl.com/v2/translate",data=[
        ("target_lang","EN"),("auth_key",auth_key),("text",s2t1),s2t2),]
)