Google Translate API:多输入文本 - Python

时间:2018-03-03 10:45:55

标签: python-3.x python-requests urllib google-translate google-translator-toolkit

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

  • 使用urllib.request.build_opener(Python3)
  • Google翻译API https://translation.googleapis.com/language/translate/v2
  • 我知道我们可以传递多个参数(多个" q"),但我不知道如何使用Python。enter image description here
  • 我提到了谷歌翻译文件。我找到了这个。enter image description here

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

之后你可能想让几个q更痛苦。 您可以使用+ = operations进行循环并构建字符串。

答案 1 :(得分:1)

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

示例:

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']}与您的问题有关。