Python使用基于json文件的tinydb数据库

为什么使用TinyDB?

TinyDB中有1200(40%文件)的代码行(+ 600次测试)。比较:buzhug大约有2000行代码(W / O测试),codernitydb大约有8000行代码(W / O试验)。

面向文件:如MongoDB,您可以存储任何文件(表示为dict)在TinyDB。

为了你的幸福,优化:TinyDB的设计是简单的和有趣的使用提供了一个简单和干净的API。

用纯Python:TinyDB既不需要一个外部服务器(例如pymongo)也没有任何依赖从PyPI。

在Python 3.4和2.6–PyPy的作品:TinyDB作品对Python和PyPy所有现代版本。

易扩展:你可以很容易地扩展TinyDB编写新存储或者修改存储中间件的行为。

近100%的测试覆盖率:如果你不算__repr__方法和一些抽象方法都没有测试,TinyDB有100%的测试覆盖率。

总之:如果你需要一个简单的数据库,用干净的API,只是没有很多的配置,TinyDB可能是你正确的选择。

为什么不使用TinyDB?

你需要一些相关的功能,比如http api 和rpc。

你是真的关心和需要高性能高速数据库。

坦率地说:如果你需要先进的功能或性能,TinyDBjiu –考虑使用数据库像buzhug,codernitydb或MongoDB

安装Tinydb数据库

$ pip install tinydb



>>> from tinydb import TinyDB, where
>>> db = TinyDB('db.json')

>>> db.insert({'type': 'apple', 'count': 7})
1
>>> db.insert({'type': 'peach', 'count': 3})
2
Note


>>> db.all()
[{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]


>>> db.search(where('type') == 'peach')
[{'count': 3, 'type': 'peach'}]

>>> db.search(where('count') > 5)
[{'count': 7, 'type': 'apple'}]

>>> db.update({'count': 10}, where('type') == 'apple')
>>> db.all()
[{'count': 10, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]

>>> db.remove(where('count') < 5)
>>> db.all()
[{'count': 10, 'type': 'apple'}]

>>> db.purge()

>>> db.all()
[]



这也太搓蛋了,直接就存入的json文件,你最少来个pickle 或者是msgpack呀 ~    提供的api使用起来是挺方便,读取的性能也还算可以,但是写入的速度着实太慢了。 有兴趣的朋友可以试试 CodernityDB ,这也是个有趣的东西。 


大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码,感谢!
另外再次标注博客原地址  xiaorui.cc

发表评论

邮箱地址不会被公开。 必填项已用*标注