1

我正在努力寻找一种在 Google Translate API 中输入多个文本的方法。我的设置包括以下内容。

  • 使用urllib.request.build_opener(Python3)
  • 谷歌翻译 API https://translation.googleapis.com/language/translate/v2
  • 我知道我们可以传递多个参数(多个“q”),但我不知道如何用 Python 来做。在此处输入图像描述
  • 我参考了谷歌翻译文件。我找到了这个。在此处输入图像描述

我的问题: 如何在输入中添加多个文本。? 因为下面的代码对我没有任何意义。

data = {'q':'cat', 'q':'dog','source':source,'target':target,'format':'html'}

这是我的代码。

data = {'q':'This is Text1', 'q':'This is Text2', 'q':'This is Text3', source':source,'target':target,'format':'html'}
_req = urllib.request.Request("https://translation.googleapis.com/language/translate/v2?key="+API_KEY)
_req.add_header('Content-length', len(data))
_req.data = urllib.parse.urlencode(data).encode("utf-8")
response = Connector._get(_req,_session)

Connector._get()在其他文件中,它在内部调用urllib.request.build_opener数据。

谢谢!

4

2 回答 2

1

我自己没有测试过,但似乎你应该构建数据字符串作为数据参数提供给你的 python urllib.request 方法。所以像 data = "{\n \'q\':{}\n \'q\':{} {} etc.".format(qstr,qstr, etc...)

在那之后,你可能想让有几个 qs 变得更痛苦。您可以创建一个循环并使用 += 操作构建您的字符串。

于 2018-03-03T11:18:18.840 回答
1

要在 Python 中为 HTTP 请求发布多个参数(具有相同名称),您可以使用值列表。它们将被添加到 URL 中,例如q=dog&q=cat.

例子:

headers = { 'content-type': 'application/json; charset=utf-8' }
params = {'q': ['cat', 'dog'],'source':source,'target':target,'format':'html'}
response = requests.post(
            "https://translation.googleapis.com/language/translate/v2?key=",
            headers=headers,
            params=params
        )

具体来说,params = {'q': ['cat', 'dog']}与您的问题有关。

于 2019-12-05T03:47:09.760 回答