利用Python实现百度API的调用

1。先要注册百度API成为开发者,

下面是开发者申请链接:

http://api.fanyi.baidu.com/api/trans/product/index

为方便使用,百度翻译开放平台提供了详细的接入文档,链接如下:

http://api.fanyi.baidu.com/api/trans/product/apidoc

在翻译文档中列出了详细的使用方法,以下是接入文档原文:

例:将apple从英文翻译成中文:

请求参数:

q=apple

from=en

to=zh

appid=2015063000000001

salt=1435660288

平台分配的密钥: 12345678

生成sign:

>拼接字符串1

拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678

得到字符串1 =2015063000000001apple143566028812345678

>计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)

sign=md5(2015063000000001apple143566028812345678)

sign=f89f9594663708c1605f3d736d01d2d4

完整请求为:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4

签名sign的生成

通过Python提供的hashlib模块中的hashlib.md5()可以实现签名计算

以接入文档中的字符串为例:

  1. import hashlib 
  2. m = '2015063000000001apple143566028812345678'  
  3. m_MD5 = hashlib.md5(m)  
  4. sign = m_MD5.hexdigest()  
  5. print 'm = ',m  
  6. print 'sign = ',sign 

得到签名之后,按照接入文档中要求,生成URL请求,提交后可返回翻译结果。以下是接入文档提供的字段以及对应描述的截图:

{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]} 

解析返回结果

提交URL后的返回值为json格式,使用json模块可以对结果进行解析:

  1. import json  
  2. result = '{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]}'  
  3. data = json.loads(result)  
  4. print data['trans_result'][0]['dst']  

以上就是API调用的所有程序。

猜你喜欢

转载自www.cnblogs.com/maowuyu-xb/p/9075635.html