使用 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('\nWord not found, check your spelling?\n')
        return
    print(u'\n\033[1m\033[4m{word}\033[0m  /{sound}/\n'.format(word=word, sound=sound))
    for meaning in meanings:
        print(meaning['part'])
        for mean in meaning['means']:
            print('\t' + mean)
    print('\n')

完整代码在这里 def.py

运行效果如图:

posted @ 2016-04-21 07:58  ospider  阅读(1333)  评论(0编辑  收藏  举报