python3的json数据库-TinyDB初入门
无意间看到TinyDB这个词汇,就去查了一下,就发现了它的官方网站 这里
然后就是按照他说的步骤去做。
第1步 安装 pip3 install tinydb
安装成功后,创建一个文件名字叫做 test.py,输入下面的代码:
from tinydb import TinyDB, Query # 创建数据库对象
db = TinyDB('db.json') # 插入数据记录
db.insert({'type': 'apple', 'count': 7})
db.insert({'type': 'peach', 'count': 3}) # 获取所有数据
print('get db all')
print(db.all()) # 遍历所有数据
print('for item in db')
for item in db:
print(item) # 创建查询对象
Fruit = Query() # 查询 type 等于 peach 的
print('search type = peach')
print(db.search(Fruit.type == 'peach')) # 查询 count 大于 5 的
print('search count > 5')
print(db.search(Fruit.count > 5)) # 更新 type 等于 apple 的数据 将其 count 设置为 10
print('update count = 10 where type = apple')
print(db.update({'count': 10}, Fruit.type == 'apple')) # 获取所有数据
print('get db all')
print(db.all()) # 删除 count 大于 5 的所有数据
print('remove where count > 5')
print(db.remove(Fruit.count < 5)) # 获取所有数据
print('get db all')
print(db.all()) # 清空所有数据
print('truncate db')
print(db.truncate()) # 获取所有数据
print('get db all')
print(db.all())
执行 python3 test.py
然后查看结果
get db all
[{'type': 'apple', 'count': 7}, {'type': 'peach', 'count': 3}]
for item in db
{'type': 'apple', 'count': 7}
{'type': 'peach', 'count': 3}
search type = peach
[{'type': 'peach', 'count': 3}]
search count > 5
[{'type': 'apple', 'count': 7}]
update count = 10 where type = apple
[1]
get db all
[{'type': 'apple', 'count': 10}, {'type': 'peach', 'count': 3}]
remove where count > 5
[2]
get db all
[{'type': 'apple', 'count': 10}]
truncate db
None
get db all
[]
我们可以看到结果是正确的,先插入了两条数据,又查出来,然后循环出来看看,之后查询符合条件的数据,然后更新符合条件的数据,删除符合条件的数据,清空数据,都是按照预期来的。
这里有个提醒,我开始设置的这个文件名是 tinydb.py , 然后死活执行不成功,总是提示这个 ImportError: cannot import name 'TinyDB' from partially initialized module 'tinydb'
然后我找不到原因,因为代码是一模一样的,步骤也是一样的,然后我就把这个报错拿到网络上面搜索,总算找到了这篇文章
https://stackoverflow.com/questions/61026339/cannot-import-name-tinydb
这里面他有个回答

他说不能把文件名命名为 tinydb.py ,然后我改了个名字 改为 tiny_db.py
然后执行 python3 tiny_db.py

这回果然是成功了的,所以一定不要起 tinydb.py 这个名字啊!
python3的json数据库-TinyDB初入门的更多相关文章
- SpringBoot 初入门
SpringBoot 初入门 关于介绍什么之类的就不讲了,主要做一下学习记录. 1. 启动方式 IDEA 启动 命令行启动: mvn spring-boot:run 部署到服务器启动: 先进行打包, ...
- Python3 的json 和 PHP的json
Python3操作json的标准api库参考:https://docs.python.org/3/library/json.html#module-json >>> aa = ['/ ...
- EJDB 1.1.18 发布,嵌入式JSON数据库
EJDB 1.1.18 增加对 MongoDB 操作符 $and 和 $or 的支持,支持 MongoDB 的 $ 推断操作符,修复了 $fields 提示的bug,提升了查询处理的性能. EJDB ...
- Python3自定义json逐层解析器
[本文出自天外归云的博客园] 用python3对json内容逐层进行解析,拿中国天气网的接口返回数据测试,代码如下: # -*- coding: utf-8 -*- import operator a ...
- python数据库操作 - MySQL入门【转】
python数据库操作 - MySQL入门 python学院 2017-02-05 16:22 PyMySQL是Python中操作MySQL的模块,和之前使用的MySQLdb模块基本功能一致,PyMy ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- python3.7 json模块
#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 json模块 ''' 要在不同的编程语言之间传递对象,就必须把对 ...
- Python3连接MySQL数据库实战
Python3连接MySQL数据库实战 第三方库 :pymysql 数据库连接 def connect(): try: #建立数据库连接,从左至右参数依次为 # ip地址 我用的是云端数据库 如果为本 ...
- Python3 连接 Oracle 数据库
Python3 连接 Oracle 数据库 需要导出一些稍微复杂的数据,用Python处理很方便 环境 Win10 Python 3.7.0 Oracle 11g 安装依赖 安装 cx_Oracle ...
- 一篇文章带你了解NoSql数据库——Redis简单入门
一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...
随机推荐
- Kafka Topic 中明明有可拉取的消息,为什么 poll 不到
开心一刻 今天小学女同学给我发消息她:你现在是毕业了吗我:嗯,今年刚毕业她给我发了一张照片,怀里抱着一只大橘猫她:我的眯眯长这么大了,好看吗我:你把猫挪开点,它挡住了,我看不到她:你是 sb 吗,滚我 ...
- Gmail 别名
Gmail 有一个很少人知道但是非常实用的功能,那就是别名.Gmail 允许用户通过在基本邮箱地址中添加特定符号和文本来创建多个别名.这些别名都指向同一个 Gmail 账户,方便用户进行邮件管理.过滤 ...
- 工程化Vue使用
目录 环境准备 Vue项目-创建 Vue项目开发流程 API风格 案例 推荐阅读: VUE-局部使用 环境准备 介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的V ...
- C语言指针的作业
指针的作业 求Sn = a + aa + aaa + aaaa + aaaaa的前五项和,其中a是一个数字. 例如:2 + 22 + 222 + 2222 + 22222 /* 求Sn = a + a ...
- Angular 18+ 高级教程 – 关于本教程
版本声明 本教程写于 Angular v17,但往后的所有新功能,API 都有更新到相关文章里头,所以教程总是最新的,大家可以安心学习. 前言 光阴飞逝,一转眼,我尽然已经有两年多的时间完全没有接触 ...
- Identity – Custom Entity
扩展属性 Custom Entity 指的是我们想对 Identity 的几个 Entity 做修改. 比如 User 要多一些 property, 或者 Id 用 int 而不是默认的 GUID. ...
- Flutter 不容错过的 7 大亮点 | Google I/O 精彩回顾
Flutter 在今年的 Google I/O 上发布了许多重磅更新,欢迎大家和我们一起了解其中不容错过的 7 大亮点, 点击这里 观看 Flutter 不容错过的 7 大亮点 视频了解更多信息. F ...
- PMP——如何区分赶工与快速跟进?
如何区分赶工与快速跟进? 在PMP考试中经常出现由于时间不够需要进行进度压缩的场景.进度压缩的常用工具有赶工和快速跟进两种方式.也可以辅助调整某些活动的提前量与滞后量来进行缓解.提前量是相对于紧前活动 ...
- 【赵渝强老师】利用Python完成数据分布特征的分析
在对数据的质量进行分析后,接下来就可以对数据的特征进行分析和计算,也可以通过绘制图表对数据的特征进行展示.数据的特征分析通过有以下几种方式:分布分析.对比分析.统计量分析.周期性分析.贡献度分析(帕累 ...
- 【赵渝强老师】什么是PL/SQL?
一.什么是PL/SQL? PL/SQL(Procedure Language/SQL)是oracle在标准的sql语言上的扩展.ql/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许私用条件语 ...