zhf0372 2022-02-05 09:51 采纳率: 0%
浏览 40
已结题

关于百度翻译api调用的问题

本人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次调用翻译函数翻译失败

哪位高手,给找一下问题在哪里?为什么不能重复调用翻译函数?

  • 写回答

3条回答 默认 最新

  • zhf0372 2022-02-05 12:34
    关注

    下边是用遍历的方法调用翻译函数

    
    content = ['name', 'close', 'open']
    for i in content:
        print(baidu_translation(i))
    

    结果也是这样

    名称
    'trans_result'
    'trans_result'
    
    评论

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 创建了问题 2月5日

悬赏问题

  • ¥60 如何批量获取json的url
  • ¥15 对法兰连接元件所承受的表面载荷等效转化为法兰开孔接触面上的等效表面载荷?
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼