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 做出貢獻!以下是如何開始: