如何使用 Python 将多个 "text" 参数传递给 DeepL API?

How can multiple "text" parameters be passed to the DeepL API using Python?

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

供参考,这是我使用的代码:

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", data={"target_lang": "EN", "auth_key": auth_key, "text": s2t1, "&text":s2t2})

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

编辑:我试图将 s2t1 和 s2t2 作为元素列表传递给 text,如 Martijn Pieters(Martijn Pieters) answer to 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 个字符,因此虽然可以将多个字符串传递给文本参数,但简单地传递整个字符串会更容易.我将对在文本中传递一个完整的 4800 个字符串进行一些效率分析,并进行一个通过字符串拆分列表的测试并进一步更新。

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

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