Python google-trans-new 翻译引发错误:JSONDecodeError:额外数据:

Xia*_*Xia 5 python python-3.x jsondecoder google-translation-api

在使用Google translate API 时,我发现有时 google 无法翻译任何内容,同时它不断引发相同的异常:额外数据。

我在互联网上搜索,我发现一个理论说我被谷歌翻译以某种方式阻止了,或者可以因为翻译数据超过 5k 个字符限制而被阻止。 是一个解决方案,但我认为这不是解决它的正确方法。

我的代码不是新的,它已经正常工作了大约 1 个月,但是前几天,它开始引发错误,我当时不知道如何解决它,所以我把它留到了以后解决它,但是当我醒来时,它又开始工作了,我以为是 google 或其他原因引起的错误,所以我只是忘记了,但在同一天,晚上 10 点左右,它停止工作。我想说的是它非常不一致,有时它起作用有时不起作用。

如何重现:使用指定的python 版本运行google_trans_new包网站上的示例代码。

这是我的代码:

from google_trans_new import google_translator

translator = google_translator()  
translate_text = translator.translate('?????????',lang_tgt='en') 
print(translate_text)
Run Code Online (Sandbox Code Playgroud)

输出:

Traceback (most recent call last):
  File "c:/Users/my_name/MyApp.py", line 105, in <module>
    translate_text = translator.translate('?????????',lang_tgt='en')
  File "C:\Users\my_name\AppData\Local\Programs\Python\Python37\lib\site-packages\google_trans_new\google_trans_new.py", line 188, in translate
    raise e
  File "C:\Users\my_name\AppData\Local\Programs\Python\Python37\lib\site-packages\google_trans_new\google_trans_new.py", line 152, in translate
    response = json.loads(response)
  File "C:\Users\my_name\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "C:\Users\my_name\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 341, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 371 (char 370)
Run Code Online (Sandbox Code Playgroud)

我已经在我的电脑、我的 Heroku 网络应用程序(用于 discord bot 和 line bot)和我朋友的笔记本电脑上进行了测试。他们都提出了同样的错误。

我的环境:

Python version: 3.7.0 (google-trans-new specified >= 3.6)
Heroku Python version: 3.8.10
Run Code Online (Sandbox Code Playgroud)

Ric*_*o D 10

已经有一个开放的git 问题。它的解决方法是:

在google_trans_new / google_trans_new.py变更线151,其是: response = (decoded_line + ']')response = decoded_line

如上所述,您只需要克隆google_trans_new存储库并编辑 google_trans_new.py 上的第 151 行。

使用编辑过的代码和您的输入(?????????)完成测试: 在此处输入图片说明