python微信公众号翻译功能怎么用_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...
距离上次写使用python一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是就先搁浅了,今天又搞了搞,终于搞定了,在这里也说下,同时也说下json格式的应用
1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=data-mode
2.根据有道的api使用说明
数据接口
http://fanyi.youdao.com/openapi.do?keyfrom=&key=&type=data&doctype=&version=1.1&q=要翻译的文本
版本:1.1,请求方式:get,编码方式:utf-8
主要功能:中英互译,同时获得有道翻译结果和有道词典结果(可能没有)
参数说明:
type - 返回结果的类型,固定为data
doctype - 返回结果的数据格式,xml或json或jsonp
version - 版本,当前最新版本为1.1
q - 要翻译的文本,不能超过200个字符,需要使用utf-8编码
errorCode:
0 - 正常
20 - 要翻译的文本过长
30 - 无法进行有效的翻译
40 - 不支持的语言类型
50 - 无效的key
3.知道怎么调用后后面的就简单了,加上你的要查询的词,可以是中文,也可以是英文,我建议返回格式doctype是json的,因为和xml相比使用更简单,更容易理解,关于如何使用json解析,可以看我以前写的博文,python解析json ,我们来查看一下有道翻译返回的json的基本格式
成功返回翻译结果都会有一个叫basic的key的,于是我们接下来写一个fanyi的函数,之前在头部记得import json
def youdao(word):
qword = urllib2.quote(word)
baseurl = r'http://fanyi.youdao.com/openapi.do?keyfrom=yourAppName&key=yourAppKey&type=data&doctype=json&version=1.1&q='
url = baseurl+qword
resp = urllib2.urlopen(url)
fanyi = json.loads(resp.read())
##根据json是否返回一个叫“basic”的key来判断是否翻译成功
if 'basic' in fanyi.keys():
##下面是你自已来组织格式
trans = u'%s:\n%s\n%s\n网络释义:\n%s'%(fanyi['query'],''.join(fanyi['translation']),''.join(fanyi['basic']['explains']),''.join(fanyi['web'][0]['value']))
return trans
else:
return u'对不起,您输入的单词%s无法翻译,请检查拼写'% word
4.我们将之前得到的content进行翻译操作
Nword = youdao(content)
return self.render.reply_text(fromUser,toUser,int(time.time()),Nword)
5.将之前的鹦鹉学舌的return删除掉,下面在微信给你的公众账号发几个词看看能不能得到翻译结果
6.兴奋了一把之后,发现只有英文可以翻译成中文,但中文却不能翻译成英文,初步推测是破编码搞的,因为这个我搁浅了一段时间,今天终于搞定了,将得到的content进行一下是否是unicode的判断,如果是unicode则对其进行utf-8转码
if type(content).__name__ == "unicode":
content = content.encode('UTF-8')
Nword = youdao(content)
return self.render.reply_text(fromUser,toUser,int(time.time()),Nword)
关于python中的各种编码的头疼问题可以google,推荐几篇文章
7.以后继续更加好玩的功能
1月23日更新,有网友反馈,说只判断basic是否在key中,会导致很多有道本来是翻译成功了,但我的程序没有返回值,其实查看有道翻译的api,它是根据errorCode来判断是否返回成功的,如果是0则是返回正常,还有一些返回值,那么我将我的程序进行改进,选判断errorCode,然后再判断translation
def youdao(word):
qword = urllib2.quote(word)
baseurl =r'http://fanyi.youdao.com/openapi.do?keyfrom=&key=&type=data&doctype=json&version=1.1&q='
url = baseurl+qword
resp = urllib2.urlopen(url)
fanyi = json.loads(resp.read())
if fanyi['errorCode'] == 0:
if 'basic' in fanyi.keys():
trans = u'%s:\n%s\n%s\n网络释义:\n%s'%(fanyi['query'],''.join(fanyi['translation']),' '.join(fanyi['basic']['explains']),''.join(fanyi['web'][0]['value']))
return trans
else:
trans =u'%s:\n基本翻译:%s\n'%(fanyi['query'],''.join(fanyi['translation']))
return trans
elif fanyi['errorCode'] == 20:
return u'对不起,要翻译的文本过长'
elif fanyi['errorCode'] == 30:
return u'对不起,无法进行有效的翻译'
elif fanyi['errorCode'] == 40:
return u'对不起,不支持的语言类型'
else:
return u'对不起,您输入的单词%s无法翻译,请检查拼写'% word
这样可以翻译一些不长的句子,而且还可以翻译韩语,日语等,但问题也出来了,即使输入乱七八糟的内容lkajfladfaldfladkf也会给你返回个相同的内容,内容过长的话,有道和微信的定义貌似不一样,有道可以翻译,但是微信不一定可以返回内容,另外一个问题是有引号“'”会转码'望网友大神共同讨论解决
接下来:
python微信公众号翻译功能怎么用_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...相关推荐
- 用python设计一个简易的英汉互译界面_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...
距离上次写使用python一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是 ...
- 中英互译在线翻译官方版
中英互译在线翻译 v6.2.5 官方版 软件大小:26.9MB 软件语言:简体中文 软件类别:转换翻译 软件授权:官方版 更新时间:2015-01-05 应用平台:/Win8/Win7/WinXP 中 ...
- 非常简单的中英互译在线翻译操作方法
非常简单的中英互译在线翻译操作方法?无论在工作中还是生活中,我们总能遇到各种翻译问题,尤其是中英文翻译,但是很多人的英文都不好,比如小编.那么如何快捷而又专业的完成中英互译呢?如果你不知道这个问题该如 ...
- 产品说明书翻译,中英互译的翻译机构
我们知道,产品说明书是用户快速了解产品性能的一个直接途径,也是帮助用户初次使用产品的指导书.在进出口贸易中,几乎所有产品涉及说明书翻译的问题.那么,如何做好产品说明书翻译,产品说明书中英互译,北京哪个 ...
- 使用python打造一个中英互译软件(基于有道翻译)
(本博客简洁明了,适合小白入门) 首先明确整体构架: 1.爬虫部分 2.界面部分 3.打包 涵盖的库: import urllib.request import urllib.parse import ...
- 利用Python来制作一个中英互译器,并实现语音播报
以下代码可以直接使用,唯一需要修改的就是headers部分user-agent的内容,将其更改为各位自己电脑浏览器对应的即可,如果自己不会找的文末会补充说明. 老规矩,直接给代码: from urll ...
- android 评论功能盖楼,微信公众号留言功能升级,评论区能“盖楼”了
原标题:微信公众号留言功能升级,评论区能"盖楼"了 本文来自微信公众号:新榜(ID:newrankcn),作者:洁是洁白的白,原文标题:<公众号留言功能再升级!用户可互相回复 ...
- 新注册公众号没有留言评论功能怎么办?如何开通公众号留言功能?
最近常常听自媒体人抱怨 "今年2月份注册了自己的微信公众号,就写写自己的小杂文啊.美妆种草啊之类的,但是一直没有留言功能.查了一下发现留言功能应该是基本自带的功能啊--为什么我的公众号没有呢 ...
- 微信公众号新功能-原创声明、赞赏功能、评论管理、页面模版
原文:http://www.shichangbu.com/portal.php?mod=view&aid=25931 公众号如何申请这些功能? ...
最新文章
- QT学习之状态机框架
- 在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene
- ZABBIX利用自带模板监控mysql数据库
- android studio查看字节码,使用Android studio查看Kotlin的字节码教程
- trouble identification check tree
- java 统计文本行数_统计文本文件的行数,单词书,字节数
- python使用elasticsearch维护数据_使用Python对ElasticSearch获取数据及操作
- Linux有关Shell中if用法笔记
- 大数据学习笔记23:MR案例——采用Combiner做词频统计
- 数据结构与算法笔记(二) 线性表(数组描述)
- 数据挖掘:原理与实践(基础篇)(进阶篇)
- DeepinXP_V5.8完美/增强精简版2合1
- android超频闪退,显卡超频后玩游戏闪退 | 手游网游页游攻略大全
- 机器学习——k近邻算法
- 如何用python做软件导出cad_使用python将cad批量导出至pdf
- idea如何使用subversion创建补丁包
- Win10任务栏全透明化(TranslucentTB)
- 【论文阅读】【3d目标检测】Behind the Curtain: Learning Occluded Shapes for 3D Object Detection
- 超六成专科生月薪低于5000元,普通本/专科生的出路在哪儿?
- 引流软件靠谱吗,当下引流软件那么多要怎样选择好用的软件呢?
热门文章
- 百度网盘隐藏空间显示服务器,百度网盘隐藏空间在哪怎么打开?百度网盘隐藏空间这样开...
- MySQL的自身防御机制_自我防御机制
- MySQL-5.7.18绿色版安装和配置
- 魅族手机打开usb调试后链接不上电脑,解决方法如下
- 图解通信原理与案例分析-6:基于离散字符的RS232串口数字通信--收发双方独立预设置同步时钟
- LSB图像信息隐藏(实现及分析)
- c语言程序与化学有关的程序,化工热力学C语言程序.doc
- 闭式系统蒸汽管径推荐速度_蒸汽管道的设计选型
- 北漂9年了,37岁的我跳槽进了国企,开启了一段新的人生旅程
- android短信显示内容,Android获取手机短信SMS收件箱内容