用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一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是 ...
- 公众平台 python_轻松实现python搭建微信公众平台
本文主要是一步一步教大家如何利用python搭建微信公众平台,有兴趣的朋友可以参考一下 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微 ...
- python微信公众号框架_轻松实现python搭建微信公众平台
本文主要是一步一步教大家如何利用python搭建微信公众平台,有兴趣的朋友可以参考一下 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微 ...
- python开发微信订阅号如何申请_基于Python的微信公众平台二次开发(Python常用框架、订阅号开发、公众号开发)...
1.1.课程的背景 微信公众平台的火热程度已经不用多言,无论是个人还是企业,政府还是商家,都已经开始搭建微信公众平台,微信的作用已经被各界人士认可.微信公众平台的技术需求市场缺口巨大.同时python ...
- 用python做公众号网页_使用python一步一步搭建微信公众平台(一)
最近无聊,想玩玩微信的公众平台,后来发现乐趣无穷啊~ 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微信平台注册的时候需要你拍张手持身份 ...
- python+web.py 搭建微信公众平台(1)
公众号平台指导网址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5 配置python开发环境就不 ...
- python微信搭建_python搭建微信公众平台
python基于新浪sae开发的微信公众平台,实现功能: 输入段子---回复笑话 输入开源+文章---发送消息到开源中国 输入快递+订单号---查询快递信息 输入天气---查询南京最近五天天气状况 输 ...
- python开发一个web项目得需要多少行代码_用Python写个迷你出门问问|10几行代码搞定...
这是菜鸟学Python的第71篇原创文章 上一篇讲了JSON文件的用法,小伙伴们感觉好像写的很不过瘾,后台有好几个小伙伴问我能不能再写一篇,其中还有两个小伙伴给我留言,问我什么是Web Api,好今天 ...
- python自动发送微信公众号_使用python一步一步搭建微信公众平台(四)----将小黄鸡引入微信自动回复...
通过前三篇的教程,相信大家基本上了解了微信开发的基本流程,先判断用户传入数据的类型MsgType,然后再获取用户输入的内容content,再对content进行处理,再返回给用户 现在我们来加点料,在 ...
最新文章
- h5打开App的方法。
- sql-case when 条件1 then 取值1 when 条件2 then 取值2 else 取值3 end
- Hadoop大数据分布式文件系统hdfs的工作机制
- [转+个人整理]从D触发器的逻辑结构说明建立时间和保持时间
- ES5-5 参数默认值、递归、预编译、暗示全局变量
- 谁说SELINUX,IPTABLES,SAMBA不能共存?
- json对象的封装与解析
- pandas把'm8[ns]'类型转换为int类型进行运算
- Scratch(四):万圣节南瓜点灯
- 苹果保修期查询_苹果手机维修为什么这么贵?
- 如何定义线程数线程数
- c语言编程中的或逻辑的符号 符号如何输入,C语言中逻辑运算符(,||,!)和位运算符号(,|,^)...
- LNOI2022 退役记
- 潇洒郎:VMware固定虚拟机IP地址
- 让云助力企业数字化转型
- jQuery使用ajaxSubmit()提交表单示例
- 【转】ASP六大对象介绍
- lisp的vla函数画矩形_AutoLISP反应器vlr-object-reactor函数应用
- Chrome浏览器源代码编译安装Dark Reader插件
- 大搜车java_记录去大搜车的一道笔试题