Ошибка типа: translate () отсутствует 1 обязательный позиционный аргумент: 'текст' - PullRequest
0 голосов
/ 04 апреля 2020

Я только что начал использовать python несколько дней go и, к сожалению, я не могу понять, что не так с этим кодом. Я использую API GoogleTrans для перевода с французского на немецкий. Мой код довольно прост, и я не вижу в этом ничего плохого. Вся моя консоль говорит:

Traceback (most recent call last):
 File "C:\Users\leand\AppData\Local\Temp\atom_script_tempfiles\88ae3f70-767a-11ea-a67f-aff8eb543f99", line 7, in <module>
    t = translator.translate(text,dest ="de", src = "fr")
TypeError: translate() missing 1 required positional argument: 'text'
[Finished in 0.437s]
from googletrans import Translator 
translator = Translator      
text = "je suis"

t = translator.translate(text,dest ="de", src = "fr")

dest - это язык перевода, который требуется для функции перевода. В данном случае исходным языком является немецкий scr, в данном случае французский. text - это текст для перевода.

Кто-то предложил добавить скобки в начале после Translator (), но это просто меняет мою консоль на:

Traceback (most recent call last):
  File "C:\Users\leand\AppData\Local\Temp\atom_script_tempfiles\48fb5850-767e-11ea-a67f-aff8eb543f99", line 7, in <module>
    t = translator.translate(text,dest ="de", src = "fr")
  File "C:\Users\leand\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\googletrans\client.py", line 172, in translate
    data = self._translate(text, dest, src)
  File "C:\Users\leand\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\googletrans\client.py", line 81, in _translate
    data = utils.format_json(r.text)
  File "C:\Users\leand\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\googletrans\utils.py", line 62, in format_json
    converted = legacy_format_json(original)
  File "C:\Users\leand\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\googletrans\utils.py", line 54, in legacy_format_json
    converted = json.loads(text)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.752.0_x64__qbz5n2kfra8p0\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.752.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.752.0_x64__qbz5n2kfra8p0\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)

Спасибо, что прочитали мой вопрос!

1 Ответ

2 голосов
/ 04 апреля 2020

Вам не хватает скобок при создании объекта «переводчик».

Это должно быть:

translator = Translator()

, которое вводит аргумент 'self'. Вот почему вы получаете ошибку отсутствующего аргумента. https://www.geeksforgeeks.org/self-in-python-class/

Если вы получаете ошибку декодирования JSON, из-за которой, скорее всего, вы вводите неверный тип аргумента где-то в «Переводчик». Убедитесь, что вы прочитали использование и предоставляете объект JSON в качестве аргумента там, где он необходим.

...