Перестает работать Googletrans, ошибка Json.decoder от персонажей и смайликов - PullRequest
0 голосов
/ 25 февраля 2019

Перед тем, как начать -

Код:

from googletrans import Translator
import random
translator = Translator()

languages = ['af', 'sq', 'am', 'ar', 'hy', 'az', 'eu', 'be', 'bn', 'bs', 'bg', 'ca', 'ceb', 'zh-CN', 'zh-TW', 'co',
             'hr', 'cs', 'da', 'nl', 'eo', 'et', 'fi', 'fr', 'fy', 'gl', 'ka', 'de', 'el', 'gu', 'ht', 'ha',
             'haw', 'hi', 'hmn', 'hu', 'is', 'ig', 'id', 'ga', 'it', 'ja', 'jw', 'kn', 'kk', 'km', 'ko', 'ku',
             'ky', 'lo', 'la', 'lv', 'lt', 'lb', 'mk', 'mg', 'ms', 'ml', 'mt', 'mi', 'mr', 'mn', 'my', 'ne', 'no', 'ny',
             'ps', 'fa', 'pl', 'pt', 'pa', 'ro', 'ru', 'sm', 'gd', 'sr', 'st', 'sn', 'sd', 'si', 'sk', 'sl', 'so', 'es',
             'su', 'sw', 'sv', 'tl', 'tg', 'ta', 'te', 'th', 'tr', 'uk', 'ur', 'uz', 'vi', 'cy', 'xh', 'yi', 'yo', 'zu']
text = '''
hello
'''

for i in random.sample(languages, 102)[:30]:
    text = translator.translate(text, dest=i).text

print(translator.translate(text, dest='en').text)

Ошибка:

Traceback (most recent call last):
  File "C:/Users/tudor/PycharmProjects/Auto Translator/main.py", line 16, in <module>
    text = translator.translate(text, dest=i).text
  File "C:\Users\tudor\PycharmProjects\Auto translator\venv\lib\site-packages\googletrans\client.py", line 172, in translate
    data = self._translate(text, dest, src)
  File "C:\Users\tudor\PycharmProjects\Auto translator\venv\lib\site-packages\googletrans\client.py", line 81, in _translate
    data = utils.format_json(r.text)
  File "C:\Users\tudor\PycharmProjects\Auto translator\venv\lib\site-packages\googletrans\utils.py", line 62, in format_json
    converted = legacy_format_json(original)
  File "C:\Users\tudor\PycharmProjects\Auto translator\venv\lib\site-packages\googletrans\utils.py", line 54, in legacy_format_json
    converted = json.loads(text)
  File "C:\Users\tudor\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "C:\Users\tudor\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\tudor\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Я пытаюсь добиться автоматического переводчика, который поставляется сввод, затем он переводится случайным образом около 30 раз.

Код работает нормально, ошибок нет, и работает нормально, но время от времени вылетает.Из того, что я разработал, если вы добавите эмодзи или некоторые символы (сложные восточные символы), сгенерированные переводчиком, к тексту, который нужно перевести, он вылетает и выдает ошибку, которая почти идентична (я пойму, почемуЯ не могу воспроизвести это) к выше.

В большинстве случаев, когда происходит сбой программы, я могу запустить ее снова нормально, и она будет работать нормально с несовместимыми ошибками, но иногда код вообще ничего не переводит, и он мгновенно падает, и яне могу перезапустить программу снова, даже если я запускаю простой код вроде:

from googletrans import Translator
translator = Translator()

print(translator.translate('buna', dest='en').text)

>>>should produce `hello`

Он воспроизводит ту же ошибку.Если я запускаю программу без библиотеки, она работает нормально.Если я удаляю всю папку (я использую pycharm, если это какая-то помощь, она создает папку venv, содержащую среду, которую я использую для проекта), и я снова запускаю программу, она работает нормально, пока она снова не падает.

Что я хочу решить:

  • Как остановить сбой программы
  • Как я могу включить эмодзи

Спасибо заваша помощь.

...