Модуль translate неправильно переводит строки

Рейтинг: 0Ответов: 1Опубликовано: 02.04.2023

Есть задача: распарсить json файл в excel таблицу. Нужно циклом пройтись по json, взять оттуда каждый ключ и перевести с английского на русский. Далее переведенный текст записать в excel таблицу. Для решения задачи выбрал модуль translate. Однако, он выдавал ошибку Runtime Error. Прогуглил, написали, что проблема в том, что модуль видит пустую строку, пытается перевести и выкидывает эту ошибку (хоть в json нету пустых значений, но все же). Далее столкнулся с проблемой, что модуль неправильно переводит строки. Перевод на русский не соответствует оригиналу на английском, хотя, если отдельно переводить каждую строку, то переводит корректно. В чем проблема?

Файл json:

{
    "title": "Bitcoin Miner Marathon Digital's CFO to Retire After One Year",
    "description": "Hugh Gallagher intends to retire effective May 12.",
}

Мой код:

translator= Translator(to_lang="Russian")

with open('res.json') as file:
    templates = json.load(file)

for item in templates:

try:
    res = translator.translate(item['title'])
    print(res)

except RuntimeError:
    pass

Ответы

▲ 0

Нашёл более эффективное и простое решение. Установил библиотеку googletrans через команду pip install googletrans==3.1.0a0 и далее:

translator = Translator()


with open('res.json') as file:
    templates = json.load(file)


for item in templates:
    result = translator.translate(item['title'], dest='ru')
    print(result.text)