一、引言

彩云这个小而美的机器翻译一直很低调,它让人眼前一亮的是之前我们分享的网页翻译插件,可以把外文网站翻译成英中对照的样式,便于我们学习。之前我们也写过文章介绍过:

PythonFan:如何用Google翻译英文网页成双语对照样式6 赞同 · 5 评论文章正在上传…重新上传取消

有时我们要它翻译内容较多的文件,可以通过Python来调用它的机器翻译API,突破网页版5000字符的限制。 下面我们来介绍一下如何调用其API。

二、实现过程

第一步,我们要进入到彩云科技的主页,如果是第一次登录,就要先注册这个网站,然后再点击顶部的【在线翻译】。

在线翻译

第二步,再点击页面顶部的【翻译API】。

第三点,点击右侧的【Python调用】栏目。

Python调用

第四步,点击代码框右上解的复制按钮,复制Python的demo代码至thonny或者PyCharm等其它IDLE工具中备用。

样例代码

第五步,点击右侧【申请访问令牌】,点击【彩云科技开放平台】进入到开放平台,进行账号申请,同时可以申请彩云小译的API令牌。

第六步,进入到彩云科技开放平台,点击注册,注册账号。

注册小牛科技开放平台

第七步,点击【创建令牌】,填写应用的名称,创建令牌。

第八步,点击【令牌】下面一串字母形成的超级链接,进入到令牌令牌页面,然后可以复制令牌(就是那一串数字和字母组成的字符串),放到Python代码中的token变量的右边。

第九步,我们加入token,把整个代码放到IDLE中,或者thonny中进行调试代码。官方的代码如下:

官方代码

为了让代码可以翻译字符串,我们把原代码进行了修改。"Source"那里改为字符串, 'content-type'那里json改为txt,最后把译文直接打印出来。

import requests
import jsonurl = "http://api.interpreter.caiyunai.com/v1/translator"
token = "你的令牌" #这里填写你自己的令牌payload = {#"source" : ["Where there is a will, there is a way.", #"ColorfulClouds Weather is the best weather service."],"source" : "Where there is a will, there is a way.","trans_type" : "en2zh","request_id" : "demo",}headers = {'content-type': "application/txt",'x-authorization': "token " + token,
}response = requests.request("POST", url, data=json.dumps(payload), headers=headers)#print(response.text)
resp = json.loads(response.text)['target']print(resp)

三、代码优化

为了更好地调用这个代码,我进一步把以上代码中的翻译功能整合成为一个函数,这样嵌入到其它的程序中会更方便,也比较符合Python程序类的写法。

以下是我把彩云小译的Python代码移植到TransExcel中,可以批量把Excel文件中的A列翻译成B列,并保存。

注意当前目录下我们需要建一个config.txt里面写上【zh|en】或者【en|zh】这是为了便于控制语言翻译的方向。

import openpyxl
import os,jsonurl = "http://api.interpreter.caiyunai.com/v1/translator"
token = "ayvp8cntxz5e88encfi5"
workbooks=[wb for wb in os.listdir(os.getcwd()) if wb.endswith('.xlsx')]def lang():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 caiyun_api(content,from_lang,to_lang):payload = {"source" : content,"trans_type" : from_lang+str(2)+to_lang,"request_id" : "demo",}headers = {'content-type': "application/txt",'x-authorization': "token " + token,}response = requests.request("POST", url, data=json.dumps(payload), headers=headers)resp = json.loads(response.text)['target']return respdef get_lst():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=caiyun_api(cell0.value,from_lang,to_lang)except Exception as exc:print(exc)wb.save(workbook)
get_lst()

四、学后反思

  1. 彩云翻译还是比较良心,每个月送100万的免费翻译字符,而且翻译速度和翻译质量都还不错。
  2. 用Python调用API可以把Python的优势与API的功能相结合,实现多类型文件翻译和批量翻译,在不要求文本格式的情况,优化我们的翻译流程。
  3. 彩云小译免费额度用完后,额外购买是20元/100万字符,价格上还算优惠,也是比较良心。只是目前来看,采云小译的推广力度不够,很多人还不知道这款好用的翻译引擎。

手把手教你用Python调用彩云机器翻译API相关推荐

  1. 手把手教你用Python调用SCIP求解最优化模型

    手把手教你用Python调用SCIP求解最优化模型 一个简单的例子 Python调用SCIP求解最优化模型的一般步骤 创建模型对象 创建决策变量 设置目标函数 创建约束 创建一般约束 创建广义约束 求 ...

  2. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  3. python global用法_14_手把手教你学Python之函数(下)

    变量作用域:根据变量定义的位置,可将变量分为全局变量和局部变量. 全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作.如果有赋值语句,相当于创建了一个同名的局部变量: 局部变 ...

  4. python界面设计-手把手教你用Python设计一个简单的命令行界面

    原标题:手把手教你用Python设计一个简单的命令行界面 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰.今天,我们就来教大家如何设计功能完整的 Pyth ...

  5. python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)

    原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...

  6. 怎么用python编贪吃蛇_少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二)

    原标题:少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二) 检测和判断 无论我们制作的简单或者复杂的游戏 这都是最关键的两个部分 事件处理循环 61. while True: # 游戏主循环 62 ...

  7. oracle数据库更新语句_20_手把手教你学Python之操作数据库

    数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等.数据库的主要特点: 以一定的方式组织.存储数据: 能为多个用户共享: 与程序彼此独立. -- 数据 ...

  8. 手把手教你用Python求均值、中值和众数

    导读:数据科学入门:集中趋势度量--均值.中值和众数. 作者:保罗·戴特尔(Paul Deitel).哈维·戴特尔(Harvey Deitel) 来源:大数据DT(ID:hzdashuju) 本文我们 ...

  9. python在财务中的应用-【手把手教你】Python金融财务分析

    微信公众号: 1. 货币时间价值 实际上numpy和scipy很强大,包含了计算各种财务指标的函数,可以直接调用,终值(fv).现值(pv).净现值(npv).每期支付金额(pmt).内部收益率(ir ...

最新文章

  1. MySQL 错误代码和消息
  2. 磁头号和起始扇区的计算方法------软盘结构
  3. Citrix VDI攻略之三:DDC安装及配置
  4. css值变量吗,CSS变量初体验
  5. n条直线相交最多有几个邻补角_【东升二中数字课堂】创意微课直线的交点|Super数学璐...
  6. Java:使用Executors创建和管理线程
  7. 基于SpringBoot的开源免费微信管家平台,Jeewx-Boot 1.0 版本发布
  8. bitcoin 论文 Introduction
  9. uni一t 说明书_不输特斯拉,站在UNI-T背后的长安「超级工厂」
  10. NameError: name ‘os‘ is not defined - 解决
  11. 怎么用ppt去演示html,如何将PPT演示同步发布到浏览器?
  12. 开放世界游戏中的大地图的实现——程序技术篇
  13. 图解:卷帘快门(Rolling shutter)与全局快门(global shutter)的区别
  14. 《Delphi 4 开发大全》作者、Delphi研发团队开发工程师:史蒂夫·特谢拉(Steve Teixeira)访谈
  15. 什么是台式机主板的“双通道”认知误区?
  16. 硬核!深信服春招3面,终获20k入职offer!
  17. pat 甲级 A1008 Elevator
  18. Python多进程写Kafka
  19. ROS机器人SLAM学习:Gazebo定位与导航仿真
  20. 技术干货集中营——WOT 2017全球架构与运维技术峰会

热门文章

  1. 为企业提供的移动信息化办公软件-easyconnect提供下载
  2. MAC node版本降低
  3. # beta答辩总结
  4. 或matlab,matlab中或语句
  5. js实现超出显示省略号
  6. spring源码解析(五) 循环依赖
  7. CentOS 6.5 正式版发布 免费下载
  8. 生信分析——聚类分析
  9. 小程序bindtap、catchtap、navigator点击事件无反应
  10. 事件轮询机制和promise(怪异机制?)