使用数据库存储单词数据
交互效果与之前相同,不再做展示。只是更换了存储方式:
虽然目前这段小代码并不非要用数据库,但对于功能复杂、数据庞大应用来说,数据库是很有必要的。之后我们这个工具还要做更多扩展,数据库会便于读写数据,所以我们不妨现在就做好准备。
如果你之前没有数据库使用经验,我建议可以从 sqlite 开始。这是个极简的数据库,mac 自带,windows 安装也很容易,python 内置相关调用模块。之前也有文章做过介绍:
详细解答和参考代码将在下次栏目中给出,也可以其他同学在留言中的代码。
期待各位同学提交解答,更期待你能完成整个系列。
提交代码可以使用 paste.ubuntu.com 或
codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。
【解答】单词本 2 - 自动翻译
翻译的接口上次给过:
http://dict-co.iciba.com/api/dictionary.php?key=1234567&type=json&w=hello
key
需要你申请一下替换掉,w
就是你要查的单词。返回值:
我们取其中的 音标ph_en
和 释义parts
的内容即可。
请求用 requests
库的 get
方法,结果是 json 格式的字符串,所以用 json
方法可获取为字典类型的对象。
翻译部分参考代码:
import requests
apiurl = 'http://dict-co.iciba.com/api/dictionary.php?key=1234567&type=json&w='
# 获取中文翻译
def get_chs(word):
url = apiurl + word
try:
# 请求并获取翻译
r = requests.get(url)
data = r.json()
symbol = data['symbols'][0]
ph = symbol.get('ph_en', '')
means = symbol.get('parts', [])
# 无翻译
if not ph and not means:
print('未找到中文翻译')
return ''
# 拼接音标和释义
means_str = []
for m in means:
means_str.append(m['part'] + ';'.join(m['means']))
all_mean = ' | '.join(means_str)
return '[' + ph + '] ' + all_mean
except:
# 请求异常
print('获取中文失败')
return ''
chs = get_chs(word)
与上一次合并的完整代码已上传,获取可在公众号里回复关键字 单词本
上次 @张赛 和 @Nttzl 两位同学提交了代码,实现了相应功能。不过有些需要注意的小细节:
放寒假了,大家可以动起手来了
期待在下一期中看到你的代码!
本文分享自 Crossin的编程教室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!