не могу найти ошибку в коде , пайчер ругается на строку body={

Э.Р.А

Новичок
Пользователь
Июл 14, 2024
12
0
1
Python:
from typing import Dict, Any, List

import requests
import os
# Проверьте наличие файла с API-ключом
if not os.path.exists('authorized_key.json'):
    print("Файл authorized_key.json не найден ")
    exit()
with open('authorized_key.json') as f:
    YANDEX_API_KEY = f.read().strip()
YANDEX_TRANSLATE_URL = "https://translate.api.cloud.yandex.net/translate/v2/translate"
FOLDER_ID = 'aje2t1t5k79l9fbqjja3'
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {YANDEX_API_KEY}',
}
# ФУНКЦИЯ ПЕРЕВОДА ТЕКСТА
def translate_text_yandex(original_text, target_language='ru'):

   '''
   я закоментировал варианты кода который не пропустил пайчарм и написал новый
   -----------------------------------------------
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {YANDEX_API_KEY}',
    }
    -----------------------------------------------
    body = {
            "targetLanguageCode": target_language,
            "texts": [original_text],
            "folderId": FOLDER_ID
    }
    body = {
    'source': source_language,
    'target': target_language,
    'text': document_content,
    'folderId': FOLDER_ID,
    
    }
    '''
    
    body = dict(targetLanguageCode=target_language, texts=[original_text], folderId=FOLDER_ID)


    try:
        response = requests.post(YANDEX_TRANSLATE_URL, headers=headers, json=body)
        response.raise_for_status()  # Raises an HTTPError for bad responses
        return response.json()['translations'][0]['text']
    except requests.exceptions.RequestException as e:
        print(f"Ошибка перевода: {e}")
        return None
    '''
    -----------------------------------
    response = requests.post(YANDEX_TRANSLATE_URL, headers=headers, json=body)
    if response.status_code == 200:
        return response.json()['translations'][0]['text']
    else:
        print(f"Ошибка перевода: {response.status_code} - {response.text}")
        return None
        -------------------------------------
    '''   
# ЦИКЛ ЗАПРОС ЧИСЛА или на выход
while True:
    user_input = input("Введите число (или 'exit' для выхода): ")
    if user_input.lower() == 'exit':
        print("Выход из программы.")
        break
# валидация
    if not user_input.isdigit():
        print("Пожалуйста, введите действительное число.")
        continue

    # Формируем URL с введенным числом
    url = f'http://numbersapi.com/{user_input}'

    # Выполняем GET-запрос
    response = requests.get(url)

    # Проверяем статус код ответа
    if response.status_code == 200:
        # Получаем текст ответа
        original_text = response.text

        # Переводим текст на русский язык, используя Yandex API
        translated_text = translate_text_yandex(original_text, target_language='ru')

        # Выводим переведенный текст
        if translated_text:
            print(translated_text)
    else:
        print(f"Ошибка: {response.status_code}")
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
405
113
43
Что именно ругается пайчер?
 

Форум IT Специалистов