最近發(fā)現(xiàn)的 3 個(gè) Python 輕量級(jí)數(shù)據(jù)庫,好用到爆!
你好,我是豆包,在寫程序的時(shí)候經(jīng)常會(huì)需要將數(shù)據(jù)保存到本地,比如是配置文件,或者是中間過程數(shù)據(jù),通過情況下我會(huì)選擇 json、pickle 或者 sqlite。但是他們都有點(diǎn)不大方便。
比如 json 和 pickle,需要先序列化保存到文件,讀的時(shí)候再反序列化成 Python 對(duì)象。往往搞不清楚是 load 還是 dump,是 loads 還是 dumps,需要查下文檔。而 sqlite,雖然是文件數(shù)據(jù)庫,但用起來和大的數(shù)據(jù)庫 MySQL 的復(fù)雜度也差不多。
今天分享一下這些專門為 Python 打造的輕量級(jí)數(shù)據(jù)庫,使用起來真的簡(jiǎn)單到爆,寫代碼時(shí)沒有記憶負(fù)擔(dān)。
Shelve
如果說 Python 中的字典(dict)是保存在內(nèi)存中的,那么標(biāo)準(zhǔn)庫 shelve就像是保存在文件中的字典,它的值可以為為任意 pickle 模塊能夠處理的 Python 對(duì)象,這包括大部分類實(shí)例、遞歸數(shù)據(jù)類型,以及包含大量共享子對(duì)象的對(duì)象,它的鍵則為普通的字符串。
使用方法:shelve.open(filename, flag='c', protocol=None, writeback=False)
示例代碼如下,可以看下注釋:
pickleDB
pickleDB?是一個(gè)輕量級(jí)且簡(jiǎn)單的鍵值對(duì)存儲(chǔ)。它建立在 Python 的 simplejson 模塊之上,并受到 redis 的啟發(fā)。可以通過?pip install pickledb
?進(jìn)行安裝。
使用方法:
TinyDB
與 pickleDB 和 Shelve 類似,TinyDB 是另一種快速且輕量級(jí)的鍵值對(duì)存儲(chǔ)。TinyDB的優(yōu)點(diǎn)是非常快,非常簡(jiǎn)單易用。TinyDB 的接口類似于許多鍵值存儲(chǔ),但提供了許多附加功能,例如編寫自己的存儲(chǔ)中間件能力。
用法:
還可以這樣用:
是不是很方便?
最后的話
本文分享了 3 個(gè)輕量級(jí)的 Python 文件型數(shù)據(jù)庫,它們都非常簡(jiǎn)單易用,希望對(duì)你的編程有所幫助。