新建Python文件,叫
text_translator.py
輸入
import requests
import jsonAPI_KEY = "glYiYVF2dSc7EQ8n78VDRCpa" # 替換為自己的API Key
SECRET_KEY = "kUlhze8OQZ7xbVRp" # 替換為自己的Secret Keydef main():# 選擇翻譯方向while True:direction = input("請選擇翻譯方向(輸入1: 中譯英,輸入2: 英譯中):").strip()if direction == '1':from_lang, to_lang = 'zh', 'en'breakelif direction == '2':from_lang, to_lang = 'en', 'zh'breakelse:print("輸入錯誤,請重新輸入!")# 輸入待翻譯文本(支持多行輸入)print("\n請輸入需要翻譯的文本(輸入完成后請輸入'END'并回車):")text_lines = []while True:line = input()if line.strip().upper() == 'END':breaktext_lines.append(line)original_text = '\n'.join(text_lines)if not original_text.strip():print("錯誤:輸入的文本不能為空!")return# 調用翻譯APItry:url = f"https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token={get_access_token()}"payload = json.dumps({"from": from_lang,"to": to_lang,"q": original_text}, ensure_ascii=False)headers = {'Content-Type': 'application/json','Accept': 'application/json'}response = requests.post(url, headers=headers, data=payload.encode('utf-8'))response.raise_for_status() # 檢查HTTP狀態碼是否正常result = response.json()if 'error_code' in result:print(f"\n翻譯失敗!錯誤碼:{result['error_code']},錯誤信息:{result['error_msg']}")else:translated_text = result['result']['trans_result'][0]['dst']print("\n翻譯結果:")print(translated_text)except requests.exceptions.RequestException as e:print(f"\n網絡請求異常:{str(e)}")except KeyError as e:print(f"\n解析結果失敗,可能API返回格式變化:{str(e)}")except Exception as e:print(f"\n發生未知錯誤:{str(e)}")def get_access_token():"""獲取API訪問憑證"""url = "https://aip.baidubce.com/oauth/2.0/token"params = {"grant_type": "client_credentials","client_id": API_KEY,"client_secret": SECRET_KEY}try:response = requests.post(url, params=params)response.raise_for_status()return response.json().get("access_token")except Exception as e:print(f"獲取access_token失敗:{str(e)}")return Noneif __name__ == '__main__':main()
運行結果如圖