【问题标题】:How can multiple "text" parameters be passed to the DeepL API using Python?如何使用 Python 将多个“文本”参数传递给 DeepL API?
【发布时间】:2021-08-23 12:40:55
【问题描述】:

我正在尝试使用 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", data={"target_lang": "EN", "auth_key": auth_key, "text": s2t1, "&text":s2t2})

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

【问题讨论】:

    标签: python-3.x python-requests machine-translation deepl


    【解决方案1】:

    编辑:我试图将 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 个字符的字符串进行一些效率分析,并通过字符串拆分列表进行测试并进一步更新。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢您的回答!我认为将字符串列表传递给text 的方法更简单一些,所以我将继续接受这个答案——但感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 2020-11-09
      • 2016-10-28
      • 1970-01-01
      • 2011-08-08
      • 2021-01-15
      • 2014-12-08
      相关资源
      最近更新 更多