excel !啥意思(【未来虫教育】Python调用百度API把Excel中的A列翻译成B列)

wufei123 发布于 2024-08-17 阅读(4)

百度API的免费翻译额度越来越少了,要想提升就只能进行实名认证,获得高级会员,拿到每个月100万的免费额度今天我用Python调用百度的API,实现把Excel文件的翻译主要过程中用openpyxl读取Excel文件中的A列,然后送给百度API翻译后写入到B列当中。

可以进行多个Excel文件的翻译,而且翻译的速度还很快,下面给大家分享一下我的代码import openpyxlimport os,jsonimport randomimport http.client,urllib

from hashlib import md5import urllib.parseappid="你自己的百度API APPID" #填写自己的secretKey="百度API密匙" #填写自己的workbooks=[wb for wb in os.listdir(os.getcwd()) if wb.endswith(.xlsx)]

def lang():"""配置本地的config.txt, 用|隔开要翻译的语言,如中译英【zh|en】"""with open("config.txt","r",encoding="utf-8") as f:

line=f.readlines()from_lang,to_lang=line[0].strip().split("|")return from_lang,to_langdef get_lst():"""

读取Excel的A列,并翻译后写入B列"""from_lang,to_lang=lang()for workbook in workbooks:wb=openpyxl.load_workbook(workbook)

ws=wb.activefor cell0,cell1 in zip(ws[A],ws[B]):if cell0.value!="":try:cell1.value=baidu_api(cell0.value,from_lang,to_lang)

except Exception as exc:print(exc)wb.save(workbook)def baidu_api(content,from_lang,to_lang):"""调用百度API

"""httpClient = Nonemyurl = /api/trans/vip/translateq = contentsalt = random.randint(32768, 65536)sign = appid + q + str(salt) + secretKey

sign = md5(sign.encode()).hexdigest()myurl = myurl + ?appid= + appid + &q= + urllib.parse.quote(q) + &from= + from_lang + &to= + to_lang + &salt= + str(

salt) + &sign= + signtry: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 = js["trans_result"][0]["dst"] # 取得翻译后的文本结果,读取字典结构并打印出来。

except Exception as e:print(e)finally:if httpClient:httpClient.close()return dstget_lst()返回搜狐,查看更多责任编辑:

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。