0

我正在尝试使用 Python 3 的requests库通过 DeepL API 传递多个文本变量,但目前还无法将多个文本参数传递给请求。该文档指出“一个请求中最多可以提交 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", data={"target_lang": "EN", "auth_key": auth_key, "text": s2t1, "&text":s2t2})

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

4

2 回答 2

2

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

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 个字符的字符串和传递字符串拆分列表的测试进行一些效率分析并进一步更新。

于 2021-06-05T23:23:50.903 回答
1

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

r.post(
    url="https://api.deepl.com/v2/translate", 
    data=[
        ("target_lang", "EN"),
        ("auth_key", auth_key),
        ("text", s2t1),
        ("text", s2t2),
    ]
)
于 2021-06-05T23:23:56.717 回答