Python脚本写的命令行下的词典,python脚本,这个一个非常简单的API


这个一个非常简单的API应用,利用有道词典的开放API完成的一个命令行词典程序,只是最简单的功能,如果大家感兴趣可以继续

有道API的请求频率限制为每小时1000次,超过限制会被封禁。如果想一直用这个可以自己申请一个KEY,申请的过程非常简单,替换原有的KEY_FROM和KEY就可以了。

链接: http://fanyi.youdao.com/openapi?path=data-mode

项目地址: https://github.com/BohanZhang/python_script

#!/usr/bin/env python# -*- coding: utf-8 -*-import urllib2import urllibimport simplejson as jsonimport sysclass YoudaoDic():    """    有道词典API    """    VERSION = 1.1    URL = 'http://fanyi.youdao.com/openapi.do'    KEY_FROM = 'Dic-EVE'    KEY = '975360059'    TYPE = 'data'    # 可选值xml, json    DOC_TYPE = 'json'    def translate(self, text):        """        翻译方法,传入要翻译的文本,返回结果字典        """        # 参数        params = {'keyfrom': self.KEY_FROM, 'key': self.KEY, 'type': self.TYPE, 'doctype': self.DOC_TYPE, 'version': self.VERSION ,'q': text}        request = urllib2.urlopen(self.URL, urllib.urlencode(params))        data = request.read()        return json.loads(data)    def format_for_command(self, text):        """        为命令行格式化翻译结果        """        data = main(text)        # TODO:格式化字符串        if data:            print '有道翻译:'            print '\\t原文本:', data.get('query', text)             translation = data.get('translation', None)             if translation:                 for t in translation:                    print '\\t翻  译:', t            else:                '未找到该词'def main(text):    if text and text.strip() != '':        return YoudaoDic().translate(text)if __name__ == '__main__':    if sys.argv and len(sys.argv) >= 2:        l = sys.argv[1:]        YoudaoDic().format_for_command(' '.join(l))    else:        print '有道翻译: \\n\\t提示:请输入您要翻译的词或句子'#该片段来自于http://byrx.net

评论关闭