百度api使用文檔:http://api.fanyi.baidu.com/api/trans/product/apidoc#languageList
進行開發者認證後進行api使用,我使用requests模塊請求這個api:
如下是官方文檔給出的python3示例,是用urllib請求的。
然而我想用requests請求,代碼如下:
import requests
import hashlib
import json
#繁轉簡
def f2j(self,line):
#使用hashlib散列,這裏myappid和mycode分別代表認證後百度給你的APP ID和密鑰
#salt作驗證參數,隨便寫一個數即可,我這裏就是123
sign = hashlib.md5(('appid%s1230code' % (line)).encode()).hexdigest()
#裝填參數,參數參考官方文檔,不再贅述
r = requests.get('https://fanyi-api.baidu.com/api/trans/vip/translate?q=%s&from=cht&to=zh&appid=myappid&salt=123&sign=%s' % (line, sign))
#得到的r是一個response對象,不能夠像官方文檔一樣使用r.read(),而是r.text
r_all = r.text
#將返回的文本轉化爲json
r_json = json.loads(r_all)
print(r_json)
#使用字典方式取出(不知道爲什麼這裏取值需要按字典格式處理)
line = r_json['trans_result'][0]['dst']
print(line)
return line
以下是輸出的r_json: