网络翻译实现

基本原理

    利用有道翻译api,提交要查询的单词,返回json结果,然后对结果进行解析输出

代码

# !/usr/bin/env python
#
coding=utf-8
import urllib
import json
# ret = '''{"translation":["苹果"],"basic":{"phonetic":"'æpl","explains":["n. 苹果;家伙"]},"query":"apple","errorCode":0,"web":[{"value":["苹果","苹果公司","苹果汁","美国苹果"],"key":"Apple"},{"value":["苹果电脑","苹果电脑公司","苹果计算机","苹果公司"],"key":"Apple Computer"},{"value":["苹果公司","苹果","果公司","苹果股份有限公司"],"key":"Apple Inc"},{"value":["大苹果","纽约","大苹果城","纽约的别称"],"key":"big apple"},{"value":["苹果皮"],"key":"apple skin"},{"value":["苹果馅饼","苹果饼","苹果排","苹果蛋糕"],"key":"apple tart"},{"value":["苹果日报","韩版恶作之吻造型曝光"],"key":"Apple Daily"},{"value":["垫脚箱","因在早期电影制作中"],"key":"APPLE BOXES"},{"value":["炸苹果饼"],"key":"apple fritter"},{"value":["查拉尔·阿佩尔","阿佩尔","由查拉尔阿"],"key":"Gerald Apple"}]}'''
def dealjson(ret):
    ret = json.loads(ret)
    error = ret[ ' errorCode ']
     print error
     if error == 20:
         print  ' 要翻译的文本过长 '
     elif error == 30:
         print  ' 无法进行有效的翻译 '
     elif error == 40:
         print  ' 不支持的语言类型 '
     elif error == 50:
         print  ' 无效的key '
     elif error == 0:
        trans = ret[ ' translation ']
         for i  in trans:
             print i
         print ret[ ' query ']
         if  ' basic '  in ret.keys():
            explain =  ret[ ' basic '][ ' explains ']
             for i  in explain:
                 print i
                web =ret[ ' web ']
                 for i  in web:
                     print i[ ' key '],
                     for j  in i[ ' value ']:
                         print j,
                     print 

if  __name__== ' __main__ ':
     while True:
        word = raw_input( ' input:  ')
         if word ==  '':
             continue
        word = urllib.quote(word)
         print word
        url =  ' http://fanyi.youdao.com/openapi.do?keyfrom={}&key={}&type=data&doctype=json&version=1.1&q= '+word
        ret = urllib.urlopen(url).read()

        dealjson(ret) 

 

打算把这个程序整合到vim里面去,实现在vi里面一键翻译。一个小时只有1000次,个人使用是绝对够了!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值