Чтобы прочитать слово из файла, надо применить
readlines().
Print() не нужен, потому что функция не возвращает ответ, а печатает его сама.
with open('1word.txt', 'r') as f:
for line in f.readlines():
ya_dict (line.strip())
strip() нужен чтобы удалить знаки переноса строки.
text = word_tr бессмысленная строка. Или сразу называйте переменную
text или передавайте в ссылку
word_tr.
eval() не нужен. Он выполняет код, переданный ему в виде строки. Например:
eval('print("text")')
напечатает
text, как будто
'print("text")' не строковая переменная, а команда.
После строки содержащей
uri = лучше написать так:
r = requests.post(uri) # делаем запрос к яндексу
data = json.loads(r.text) # конвертируем строку json в словарь
word_list = data["def"][0]["tr"] # получаем список
for word in word_list:
print(word["text"])
Цикл
forперебирает все элементы списка и получает из каждого полученного словаря значение с ключем
'text'.
Саму строку с
uriлучше написать так:
uri = 'https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key={}&lang={}&text={}'.format(yandexkey, lang, text)
Тогда не получите ошибку
Invalid syntax.
Увидеть какой должен прийти результат можно
здесь.
Код я не тестировал, потому что у меня нет
api ключа, но надеюсь сейчас уже проще будет разобраться что происходит.