最近复制别人的代码实现百度API翻译文字,总是报错:
{‘error_code’: ‘52003’, ‘error_msg’: ‘UNAUTHORIZED USER’}
后来发现是URL出错,整理了纠错过程,记录下来以备后用
1、先注册百度API的自然语言处理中的翻译应用
2、创建应用,获得翻译的API ID,APIKEY SecrectKey
3、查看文档,用Post方式到网址https://aip.baidubce.com/oauth/2.0/token?grant_type= 获取Access_token
4、利用Access_token访问网址https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1 进行翻译
5、设置from 和to 是从什么语言翻译成什么语言
6、设置翻译文本
7、将Access_token+from+to整合到网址url中,用get方式获取响应内容
8、先输出响应内容,查看内容及格式,找出需要的数据。响应内容默认是JSON格式
9.根据查看的响应内容,从响应内容中查找[‘result’][‘trans_result’][0][‘dst’]即可找到翻译的结果
import requests
#获取Access_token
def get_token():
api_key = '注册申请的API KEY'
secret_key = '注册申请的SecretKey'
#将网址与两个Key组合
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+
api_key+'&client_secret='+secret_key
response = requests.get(host)
if response:
token = response.json()['access_token']
#print(token)
return token
#判断首字母是否是英文字母从而判断是英译汉or汉译英
def is_eng(ch):
if ord(ch) not in range(97,122) and ord(ch) not in range(65,90):
return 'zh','en'
return 'en','zh'
#调用函数获取到token
token = get_token()
q= input('请输入翻译内容:')
#查看输入的内容首字是否为英文字母
fr, tr = is_eng(q[0])
#将Access_token+from+to整合到网址url中
url='https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token='+
token+'&q='+q+
'&from='+fr+'&to='+tr
#用get方式获取响应内容
response = requests.get(url)
result = response.json()
'''可先打印输出响应内容,格式如:
{"result":{"from":"en","trans_result":[{"dst":"你好","src":"hello"}],"to":"zh"},"log_id":470906}
'''
print('翻译后的内容:',end=' ')
print(response.json()['result']['trans_result'][0]['dst'])



