LOLI仔 2019-06-18 12:38 采纳率: 100%
浏览 1329
已采纳

调用百度翻译api,尝试可用,但是数量有限制吗?

import http.client
import hashlib
import json
import urllib
import random
from openpyxl import load_workbook
import time

wb = load_workbook("W036W评语与退货率.xlsx")
ws = wb["Sheet1"]
qlist=[]
for cell in list(ws.columns)[4]:
    c=cell.value
    qlist.append(c)
appid = ''
secretKey = ''
httpClient = None
myurl = '/api/trans/vip/translate'
for q in qlist:
    fromLang = 'auto' # 源语言
    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"]) # 取得翻译后的文本结果
        print(dst) # 打印结果
    except Exception as e:
            print(e)
    finally:
        if httpClient:
            httpClient.close()
    time.sleep( 2 )

一共89条数据,前面的可以翻译出来,因为我写的是循环,一定数量之后就会返回Expecting value: line 1 column 1 (char 0)。但是我把表格里前面的数据删掉一些就可以全部输出,不知道为什么。

又尝试了一下发现是70条之后的就会返回Expecting value: line 1 column 1 (char 0)。jsonResponse返回的是空值,我拆成两个list做循环都不行。等下找个账号试试别的看行不行

  • 写回答

3条回答 默认 最新

  • 听楼一夜雨 2019-06-18 13:49
    关注

    一般有字数限制吧,既然删一些能翻译,条数应该够,那就应该是你的数据格式有点问题,可能部分json格式不对

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog