tinydb
v4.8.2
TinyDB 是一个轻量级的面向文档的数据库,专为您的幸福而优化:) 它是用纯 Python 编写的,没有外部依赖项。目标是会被 SQL-DB 或外部数据库服务器破坏的小型应用程序。
TinyDB 是:
dict
)。要直接了解所有细节,请访问 TinyDB 文档。您还可以在讨论论坛上讨论与 TinyDB 相关的所有内容,例如一般开发、扩展或展示您基于 TinyDB 的项目。
TinyDB 已使用 Python 3.8 - 3.13 和 PyPy3 进行了测试。
该项目正处于维护模式。它已经达到了成熟、稳定的状态,没有计划重大的新功能或架构变化。也就是说,仍然会发布针对社区贡献的错误修复或功能的版本。详细了解这意味着什么,特别是在这里。
> >> from tinydb import TinyDB , Query
> >> db = TinyDB ( '/path/to/db.json' )
> >> db . insert ({ 'int' : 1 , 'char' : 'a' })
> >> db . insert ({ 'int' : 1 , 'char' : 'b' })
> >> User = Query ()
> >> # Search for a field value
>> > db . search ( User . name == 'John' )
[{ 'name' : 'John' , 'age' : 22 }, { 'name' : 'John' , 'age' : 37 }]
> >> # Combine two queries with logical and
>> > db . search (( User . name == 'John' ) & ( User . age <= 30 ))
[{ 'name' : 'John' , 'age' : 22 }]
> >> # Combine two queries with logical or
>> > db . search (( User . name == 'John' ) | ( User . name == 'Bob' ))
[{ 'name' : 'John' , 'age' : 22 }, { 'name' : 'John' , 'age' : 37 }, { 'name' : 'Bob' , 'age' : 42 }]
> >> # Negate a query with logical not
>> > db . search ( ~ ( User . name == 'John' ))
[{ 'name' : 'Megan' , 'age' : 27 }, { 'name' : 'Bob' , 'age' : 42 }]
> >> # Apply transformation to field with `map`
>> > db . search (( User . age . map ( lambda x : x + x ) == 44 ))
> >> [{ 'name' : 'John' , 'age' : 22 }]
> >> # More possible comparisons: != < > <= >=
>> > # More possible checks: where(...).matches(regex), where(...).test(your_test_func)
> >> table = db . table ( 'name' )
> >> table . insert ({ 'value' : True })
> >> table . all ()
[{ 'value' : True }]
> >> from tinydb . storages import JSONStorage
> >> from tinydb . middlewares import CachingMiddleware
> >> db = TinyDB ( '/path/to/db.json' , storage = CachingMiddleware ( JSONStorage ))
无论是报告错误、讨论改进和新想法还是编写扩展:欢迎为 TinyDB 做出贡献!以下是如何开始: