首页 > 数据库 >python3的json数据库-TinyDB

python3的json数据库-TinyDB

时间:2024-02-27 10:11:05浏览次数:18  
标签:count apple peach TinyDB db json print type python3

无意间看到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 这个名字啊! 

标签:count,apple,peach,TinyDB,db,json,print,type,python3
From: https://www.cnblogs.com/lizhaoyao/p/18036295

相关文章

  • JavaScript 实现JSON 对象数组以某个属性进行分组处理
    JavaScript实现JSON对象数组以某个属性进行分组处理要在JavaScript中对JSON对象数组的某个属性进行分组处理,你可以使用一个对象来存储分组后的结果。下面是一个简单的示例,演示了如何对JSON对象数组中的某个属性进行分组处理:假设我们有一个JSON对象数组,每个对象都有ca......
  • lua集成cjson
    1,准备编译好的lua 2,lua加到环境变量Path下 3,下载openresty维护的cjson源码GitHub-openresty/lua-cjson:LuaCJSONisafastJSONencoding/parsingmoduleforLua 4,在cjson的CMakeList.txt加一行路径为lua源码的头文件所在文件夹 5,用MinGW编译......
  • Go 100 mistakes - #77: Common JSON-handling mistakes
       ......
  • vue页面上显示package.json中的version
    在Vue项目中,你可以使用process.env来访问构建时注入的环境变量,包括package.json中的某些字段。但是,process.env通常不会直接包含package.json的所有内容。不过,你可以通过构建脚本将version字段注入到环境变量中。以下是如何在Vue项目中获取package.json中的version字段的步骤:在......
  • vue项目npm run build的时候自动更新package.json中的version
    在vue项目最外侧新增一个addVersion.js 脚本,脚本中编写逻辑来解析当前的版本号//addVersion.jsconstfs=require('fs');constpath=require('path');constpackageJsonPath=path.join(__dirname,'package.json');try{//读取package.json......
  • conda报错、anconda报错:requests.exceptions.JSONDecodeError: Expecting value: line
    anconda报错,报错信息:requests.exceptions.JSONDecodeError:Expectingvalue:line1column1(char0)不能使用conda新建环境和安装library库,网上搜索相关问题后发现是之前配置的第三方源地址出现了问题。解决方法:shell中输入命令:condaconfig--remove-keychannels......
  • QJson
    QjsonJson数组的数据格式:Json数组json数组支持:整型、浮点、字符串、布尔类型、json数组、json对象、空值:null类型一致[1,2,3,4,5]//整型["aaa","bbb","ccc"]//字符串类型不一致[12,12.34,true,"aaaaa",null]数组嵌套使用[[1,2,3],["aa",1,null],["aaa",&q......
  • JSON
    概念:JavaScriptObjectNotationJavaScript对象表示法Personp=newPerson();p.setName("张三");p.setAge(23);p.setGender("男");varp={"name":"张三","age":23,"gender":"男"};json现在多用于存储和交换文本信息的......
  • C# http请求 ( post方式 JSON格式 )
    直接上代码usingSystem.Net;usingSystem.IO;privatevoidbtnPost_Click(objectsender,EventArgse){this.txtResult.AppendText(DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss")+"准备请求"+"\r\n");//js......
  • .net core 读取appsetting.json 封装
    /*需要引入的包Microsoft.Extensions.Configuration-提供配置的核心功能。Microsoft.Extensions.Configuration.Json-支持从JSON文件加载配置。Microsoft.Extensions.Configuration.FileExtensions-支持文件相关的配置,如设置基路径。Microsoft.Extensions.Configura......