zoukankan      html  css  js  c++  java
  • 使用 Python 实现命令行词典(一)

    最近经常在服务器上开发,经常会遇到不认识的单词,然而 linux 下实在没有什么好用的词典,索性自己写一个好了。

    词典 API

    首先,Google 了一下可用的词典的 API,发现金山的 iciba 还是不错的。要使用 iciba 的 API 需要首先申请一个 key,目前 key 是免费的,并且没有访问次数限制,申请地址在这里 http://open.iciba.com/?c=api。

    申请了 key 之后在文档页我们可以看到简短的介绍。通过访问http://dict-co.iciba.com/api/dictionary.php?w=go&key=********&type=json我们就可以获取 json 格式的单词go的解释。

    Python 程序

    Python标准库中的json模块可以用来解析 json 数据,而urllib2模块可以用来发送HTTP网络请求,我们通过使用 urllib2 获取 json 数据之后即可获得想要的解释。函数如下

    def lookup(word):
        url = DICT_API.format(word=word, key=KEY)
        resp = urllib.urlopen(url)
        json_result = json.loads(resp.read())
        try:
            meanings = json_result['symbols'][0]['parts']
            sound = json_result['symbols'][0]['ph_am']
        except KeyError as e:
            print('
    Word not found, check your spelling?
    ')
            return
        print(u'
    33[1m33[4m{word}33[0m  /{sound}/
    '.format(word=word, sound=sound))
        for meaning in meanings:
            print(meaning['part'])
            for mean in meaning['means']:
                print('	' + mean)
        print('
    ')
    

    完整代码在这里 def.py

    运行效果如图:

  • 相关阅读:
    文件进阶
    文件及文件操作
    字符编码
    集合
    数据类型之字典
    数据类型之列表,元组
    数据类型之数字,字符串
    for 循环语句
    while 循环语句
    深浅拷贝
  • 原文地址:https://www.cnblogs.com/ospider/p/python-commandline-dict-i.html
Copyright © 2011-2022 走看看