import requests import json class BaiduCloud: def __init__(self, ): from main import server self.api_key, self.secret_key = server.tell_baidu_api() def _get_access_token(self): url = "https://aip.baidubce.com/oauth/2.0/token" params = {"grant_type": "client_credentials", "client_id": self.api_key, "client_secret": self.secret_key} return str(requests.post(url, params=params).json().get("access_token")) def translate_list(self, tag_list: list, target_language: str = "zh") -> dict: api_url: str = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + self._get_access_token() translate_string = '' for i in tag_list: translate_string = translate_string + i + "," translate_string = translate_string[:-1] payload = json.dumps({ "from": "en", "to": target_language, "q": translate_string }, ensure_ascii=False) headers = { 'Content-Type': 'application/json', 'Accept': 'application/json' } response = requests.request("POST", api_url, headers=headers, data=payload.encode("utf-8")) response.encoding = "utf-8" response_dict: dict = json.loads(response.text) if response.status_code != 200: return {"status": False} if "error_code" in response_dict.keys(): print(response.text) return {"status": False} translate_result: str = response_dict.get("result").get("trans_result")[0].get("dst") translate_result_list: list = translate_result.split(",") return {"status": True, "translate_list": translate_result_list}