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

调用百度翻译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 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化