Python, используя словарь Яндекса для перевода еще 1 слово - PullRequest
0 голосов
/ 23 марта 2020

Попытка перевести некоторые фразы или предложения, используя Yandex Dictionary API с Python.

Для 1 слова или некоторых словосочетаний это работает правильно, но если я добавлю verb, тогда ответ будет выглядеть как : {'head': {}, 'def': []}.

Для испытаний:

'hello', 'text', 'true', 'empty box' - works good,
'it is mine', 'may be yours', 'do tasks' - gives empty response

Код

url = "https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key=APIkey&lang=en-ru&text=time"
key = "my key"

with open('errors.txt' ,"w", encoding= 'utf-8') as fErrors: 
    for word in words:
        params = {
            "key": key,
            "lang": 'en-ru',
            "text": word
        }
        response = requests.get(url, params=params)
        if(response.status_code == 200):
            data = response.json()
        # print(data ,'END')
            if(len(data['def']) > 0):
                translatedWord = data['def'][0]
                dictionary[word] = [translatedWord['ts'], translatedWord['tr'][0]['text']]
            else:
                print('Error word [NO CONTEXT]: ', word)
                print(data)
                fErrors.write(word + '\n')    

        else:
            print('Error [HTTP CODE] word: ', word)
            fErrors.write(word + '\n')    

print(dictionary)
...