本人python小白一枚,在学习百度翻译api方面的内容。以下是借用‘我有一碗酒可以慰风尘’的一篇文章中的代码改写的。
import random
import hashlib
import urllib.parse
import json
import http.client
def baidu_translation(content):
appid = '*****' # 你的appid
secretKey = '*****' # 你的密钥
myurl = '/api/trans/vip/translate'
httpClient = None
q = content
fromLang = 'en'
toLang = 'zh'
salt = random.randint(32768, 65536)
sign = appid + q + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign
try:
httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
httpClient.request('GET', myurl)
# response是HTTPResponse对象
response = httpClient.getresponse()
jsonResponse = response.read().decode("utf-8") # 获得返回的结果,结果为json格式
js = json.loads(jsonResponse) # 将json格式的结果转换字典结构
dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果
return dst # 返回翻译结果
except Exception as e:
return e
finally:
if httpClient:
httpClient.close()
print(baidu_translation('open'))
print('第一次调用翻译函数翻译成功')
print('='*30)
print(baidu_translation('close'))
print('第2次调用翻译函数翻译失败')
下边是打印结果
打开
第一次调用翻译函数翻译成功
==============================
'trans_result'
第2次调用翻译函数翻译失败
哪位高手,给找一下问题在哪里?为什么不能重复调用翻译函数?