【每周一坑】数据库 +【解答】自动翻译

简介: 虽然目前这段小代码并不非要用数据库,但对于功能复杂、数据庞大应用来说,数据库是很有必要的。之后我们这个工具还要做更多扩展,数据库会便于读写数据,所以我们不妨现在就做好准备。

我们的系列坑 单词本 今天继续第3期


上次我们的目标是加入自动翻译,需要用到网络接口,可以看作是一个最简单的爬虫。详细方法稍后分析,先来谈谈今天的任务:


使用数据库存储单词数据


交互效果与之前相同,不再做展示。只是更换了存储方式:



虽然目前这段小代码并不非要用数据库,但对于功能复杂、数据庞大应用来说,数据库是很有必要的。之后我们这个工具还要做更多扩展,数据库会便于读写数据,所以我们不妨现在就做好准备。


如果你之前没有数据库使用经验,我建议可以从 sqlite 开始。这是个极简的数据库,mac 自带,windows 安装也很容易,python 内置相关调用模块。之前也有文章做过介绍:


Python 实战(2):简单的数据库


像对象一样对待数据


详细解答和参考代码将在下次栏目中给出,也可以其他同学在留言中的代码。


期待各位同学提交解答,更期待你能完成整个系列。

提交代码可以使用 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 两位同学提交了代码,实现了相应功能。不过有些需要注意的小细节:


  1. 要做好异常情况的处理,比如添加的单词如果没有找到对应释义,得保证程序能正常运行不会崩
  2. 提交代码时不要上传 key、账号、密码 等敏感信息(有大厂程序员也犯过这样的错误)

放寒假了,大家可以动起手来了期待在下一期中看到你的代码!


其他内容回复左侧关键词获取:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com

推荐阅读:

Python转行 | 爬抖音 | AI名画 | 如何debug | 查天气 | 我用Python | 知乎 | 排序 | 电影票 | 技术宅 | 单词表 | 新手建议 | 如何提问 | 一图学Python | 智能防挡弹幕

目录
打赏
0
1
1
0
11
分享
相关文章
快来,立即涨薪 " 5k " 的数据库系统知识!!!
快来,立即涨薪 " 5k " 的数据库系统知识!!!
176 0
向量数据库小白必关注的“扫盲贴”来啦
自从ChatGPT问世以来,大语言模型受到广泛关注。但大模型更新频率低且不擅长垂直领域知识,向量数据库恰好可以与之互补,通过Retrieval Plugin为大模型和企业私有数据构建了一座桥梁,成为数据面向大模型的切入口。不过,你真的了解向量吗?什么又是向量数据库呢?向量检索的原理又是什么呢?向量爱好者们速速上车,跟着小编一起开启“向量探索之旅”吧!
4052 4
向量数据库小白必关注的“扫盲贴”来啦
认识和体验数据库技术练习题
进行认识和体验数据库技术的相关练习。
68 0
数据库小技能:数据库概论【下篇】
存储过程是用户定义的一系列sql语句的集合,设计特定的表或其他对象的任务,用户可以调用存储过程; 函数通常是数据库已定义的方法,它接受参数并返回某种类型的值并且不涉及特定的用户表。
144 0
数据库小技能:数据库概论【下篇】
数据库小技能:数据库概论【上篇】
完整性约束的三方面表现 - 域的完整性使用check来实现约束,通过它定义字段的值域。 - 参照完整性使用主键约束、外键约束和表级别触发器来实现 - 用户定义完整性,它是一些业务规则,用存储过程和触发器来实现。
154 0
数据库小技能:数据库概论【上篇】
移动应用程序设计基础——数据库实践——简单日记本
模拟一个日记本程序 实现简单日记的新建、修 改、删除、查询功能。 当点击右下方的添加按钮时如下图所示 当点击ListView的Item时,将显示日记的详细信息。 当点击ListView的右边的编辑图片按钮时,将进入编辑日记模式。 当点击Toolbar中的值为“编辑”的TextView控件时,显示如下。 使用SQLiteExpert软件查看生成的数据库 当使用Sqlite数据库时,Android系统对其存放的数据库文件位于/data/data/[包名]/databases/*.db,如下图所示,在安装sd
262 0
移动应用程序设计基础——数据库实践——简单日记本

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等