栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现调用百度API翻译文字

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现调用百度API翻译文字

调用百度API翻译文字

最近复制别人的代码实现百度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'])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315718.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号