在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

TinyDB輕量級數(shù)據(jù)庫有哪些特點呢

數(shù)據(jù)分析與開發(fā) ? 來源:Python實用寶典 ? 作者:Ckend ? 2022-10-28 14:07 ? 次閱讀

TinyDB 是一個純 Python 編寫的輕量級數(shù)據(jù)庫,一共只有1800行代碼,沒有外部依賴項。

TinyDB的目標是降低小型 Python 應用程序使用數(shù)據(jù)庫的難度,對于一些簡單程序而言與其用 SQL 數(shù)據(jù)庫,不如就用TinyDB, 因為它有如下特點:

輕便:當前源代碼有 1800 行代碼(大約 40% 的文檔)和 1600 行測試代碼。

可隨意遷移:在當前文件夾下生成數(shù)據(jù)庫文件,不需要任何服務,可以隨意遷移。

簡單:TinyDB 通過提供簡單干凈的 API 使得用戶易于使用。

用純 Python 編寫:TinyDB 既不需要外部服務器,也不需要任何來自 PyPI 的依賴項。

適用于 Python 3.6+ 和 PyPy3:TinyDB 適用于所有現(xiàn)代版本的 Python 和 PyPy。

強大的可擴展性:您可以通過編寫中間件修改存儲的行為來輕松擴展 TinyDB。

100% 測試覆蓋率:無需解釋。

1.準備

開始之前,需要先安裝它

pip installtinydb

2.簡單的增刪改查示例

初始化一個DB文件:

fromtinydb importTinyDB
db = TinyDB('db.json')

這樣就在當前文件夾下生成了一個名為 `db.json` 的數(shù)據(jù)庫文件。

往里面插入數(shù)據(jù)

fromtinydb importTinyDB
db = TinyDB('db.json')
db.insert({'type': 'apple', 'count': 7})
db.insert({'type': 'peach', 'count': 3})
可以看到,我們可以直接往數(shù)據(jù)庫里插入字典數(shù)據(jù),不需要任何處理。下面是批量插入的方法:
db.insert_multiple([
{'name': 'John', 'age': 22},
{'name': 'John', 'age': 37}])
db.insert_multiple({'int': 1, 'value': i} fori inrange(2))

查詢所有數(shù)據(jù)

fromtinydb importTinyDB
db = TinyDB('db.json')
db.all()
# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]
除了 .all() 我們還可以使用for循環(huán)遍歷db:
fromtinydb importTinyDB
db = TinyDB('db.json')
foritem indb:
print(item)
# {'count': 7, 'type': 'apple'}
# {'count': 3, 'type': 'peach'}
如果你需要搜索特定數(shù)據(jù),可以使用Query():
fromtinydb importTinyDB
db = TinyDB('db.json')
Fruit = Query()
db.search(Fruit.type == 'peach')
# [{'count': 3, 'type': 'peach'}]
db.search(Fruit.count > 5)
# [{'count': 7, 'type': 'apple'}]

更新數(shù)據(jù):

fromtinydb importTinyDB
db = TinyDB('db.json')
db.update({'foo': 'bar'})

# 刪除某個Key
fromtinydb.operations importdelete
db.update(delete('key1'), User.name == 'John')
刪除數(shù)據(jù)

刪除數(shù)據(jù)也可以使用類似的條件語句:

fromtinydb importTinyDB
db = TinyDB('db.json')
db.remove(Fruit.count < 5)
db.all()
# [{'count': 10, 'type': 'apple'}]
清空整個數(shù)據(jù)庫:
fromtinydb importTinyDB
db = TinyDB('db.json')
db.truncate()
db.all()
# []

3.高級查詢

除了點操作符訪問數(shù)據(jù),你還可以用原生的dict訪問表示法:

# 寫法1
db.search(User.country-code == 'foo')
# 寫法2
db.search(User['country-code'] == 'foo')
這兩種寫法是等效的。

另外在常見的查詢運算符(==, <, >, ...)之外,TinyDB還支持where語句:

fromtinydb importwhere
db.search(where('field') == 'value')
這等同于:
db.search(Query()['field'] == 'value')
這種語法還能訪問嵌套字段:
db.search(where('birthday').year == 1900)
# 或者
db.search(where('birthday')['year'] == 1900)
Any 查詢方法:
db.search(Group.permissions.any(Permission.type == 'read'))
# [{'name': 'user', 'permissions': [{'type': 'read'}]},
# {'name': 'sudo', 'permissions': [{'type': 'read'}, {'type': 'sudo'}]},
# {'name': 'admin', 'permissions':
# [{'type': 'read'}, {'type': 'write'}, {'type': 'sudo'}]}]
檢查單個項目是否包含在列表中:
db.search(User.name.one_of(['jane', 'john']))
TinyDB還支持和Pandas類似的邏輯操作:
# Negate a query:
db.search(~ (User.name == 'John'))
# Logical AND:
db.search((User.name == 'John') & (User.age <= 30))
# Logical OR:
db.search((User.name == 'John') | (User.name == 'Bob'))







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3799

    瀏覽量

    64388
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84683
收藏 人收藏

    評論

    相關推薦

    木棉花:輕量級偏好數(shù)據(jù)庫學習筆記--沈泳鑫

    之前,我們需要先了解一下數(shù)據(jù)庫什么作用,我們學完之后才能夠?qū)W以致用。顧名思義,數(shù)據(jù)庫肯定是具有存儲功能的。這輕量級偏好
    發(fā)表于 09-04 14:30

    基于輕量級偏好數(shù)據(jù)庫,實現(xiàn)存儲在本地應用數(shù)據(jù)的訪問及操作

    1. 介紹輕量級偏好數(shù)據(jù)庫輕量級存儲,主要用于保存應用的一些常用配置。它是使用鍵值對的形式來存儲數(shù)據(jù)的,保存數(shù)據(jù)時,需要給這條
    發(fā)表于 10-09 14:43

    HarmonyOS數(shù)據(jù)庫的相關資料下載

    1、HarmonyOS數(shù)據(jù)庫篇之輕量級數(shù)據(jù)存儲HarmonyOS中的數(shù)據(jù)庫存儲主要分為3種形式:1. 輕量級數(shù)據(jù)存儲2. 關系型數(shù)據(jù)庫
    發(fā)表于 03-28 11:13

    深度剖析OpenHarmony輕量級數(shù)據(jù)存儲

    一、輕量級數(shù)據(jù)存儲的版本openharmony的輕量級數(shù)據(jù)存儲現(xiàn)有兩個版本,但是harmonyOS的官網(wǎng)上只有一個輕量級數(shù)據(jù)存儲。二、應用目錄的獲取數(shù)據(jù)存儲需要獲取到應用的存放目錄,便
    發(fā)表于 03-31 14:45

    Android游戲開發(fā)之SQLite數(shù)據(jù)庫

    什么是SQLite,SQLite是一款輕量級數(shù)據(jù)庫,它的設計目的是嵌入式,而且它占用的資源非常少,在嵌入式設備中,只需要幾百KB!!!!!
    發(fā)表于 02-21 09:59 ?1909次閱讀
    Android游戲開發(fā)之SQLite<b class='flag-5'>數(shù)據(jù)庫</b>

    Access二級數(shù)據(jù)庫程序設計

    Access二級數(shù)據(jù)庫程序設計(電源技術應用往期刊)-文檔為Access二級數(shù)據(jù)庫程序設計總結(jié)文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,
    發(fā)表于 09-17 14:33 ?1次下載
    Access二<b class='flag-5'>級數(shù)據(jù)庫</b>程序設計

    用于openharmony的輕量級、簡單的結(jié)構(gòu)化NoSQL數(shù)據(jù)庫

    用于openharmony的輕量級、簡單的結(jié)構(gòu)化 NoSQL 數(shù)據(jù)庫。 下載 依賴項{ 實現(xiàn)“io.openharmony.tpc.thirdlib:ohos-NoSql:1.0.0” } 將數(shù)據(jù)
    發(fā)表于 04-13 10:05 ?2次下載

    一個純Python編寫的輕量級數(shù)據(jù)庫

    TinyDB的目標是降低小型 Python 應用程序使用數(shù)據(jù)庫的難度,對于一些簡單程序而言與其用 SQL 數(shù)據(jù)庫,不如就用TinyDB, 因為它有如下
    的頭像 發(fā)表于 10-28 14:16 ?1112次閱讀

    PSoC NeoPixel Easy輕量級

    電子發(fā)燒友網(wǎng)站提供《PSoC NeoPixel Easy輕量級.zip》資料免費下載
    發(fā)表于 11-17 09:48 ?0次下載
    PSoC NeoPixel Easy<b class='flag-5'>輕量級</b><b class='flag-5'>庫</b>

    一個純Python編寫的輕量級數(shù)據(jù)庫

    TinyDB 是一個純 Python 編寫的輕量級數(shù)據(jù)庫,一共只有1800行代碼,沒有外部依賴項。
    的頭像 發(fā)表于 02-24 10:32 ?832次閱讀

    SQLite數(shù)據(jù)庫特點 SQLite數(shù)據(jù)庫簡單介紹

    語言,使得SQLite成為非常流行的數(shù)據(jù)庫管理系統(tǒng)。 SQLite數(shù)據(jù)庫特點: 1. 輕量級:SQLite數(shù)據(jù)庫是一種非常
    的頭像 發(fā)表于 08-28 16:40 ?5532次閱讀

    輕量級數(shù)據(jù)庫哪些

    輕量級數(shù)據(jù)庫哪些 隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)等新一代信息技術的廣泛應用,數(shù)據(jù)庫系統(tǒng)也變得越來越重要。人們對于數(shù)據(jù)庫數(shù)據(jù)庫的可靠性、安全性和性能等要
    的頭像 發(fā)表于 08-28 16:41 ?5951次閱讀

    數(shù)據(jù)庫應用及其特點 數(shù)據(jù)庫數(shù)據(jù)的基本特點

    數(shù)據(jù)庫應用及其特點 數(shù)據(jù)庫數(shù)據(jù)的基本特點? 數(shù)據(jù)庫應用及其
    的頭像 發(fā)表于 08-28 17:22 ?2806次閱讀

    TinyDB :一個純Python編寫的輕量級數(shù)據(jù)庫

    TinyDB 是一個純 Python 編寫的輕量級數(shù)據(jù)庫,一共只有1800行代碼,沒有外部依賴項。 TinyDB的目標是降低小型 Python 應用程序使用數(shù)據(jù)庫的難度,對于一些簡單程
    的頭像 發(fā)表于 10-21 10:22 ?999次閱讀

    輕量級數(shù)據(jù)庫哪些類型

    輕量級數(shù)據(jù)庫是指具有小巧、靈活、高效的特點,適用于小規(guī)模項目和嵌入式設備的數(shù)據(jù)庫管理系統(tǒng)。下面是對輕量級數(shù)據(jù)庫類型的詳細介紹,包括關系型數(shù)據(jù)庫
    的頭像 發(fā)表于 12-20 11:29 ?1270次閱讀
    主站蜘蛛池模板: 在线看3344免费视频| 日本欧美强乱视频在线| 久久精品夜夜夜夜夜久久| 国产高清一区二区三区四区| 日本激情网| 久久久久国产一级毛片高清板| 日韩美aaa特级毛片| 狠狠色噜噜狠狠狠狠米奇7777| bt天堂bt在线网| 色网址在线观看| 欧美激情xxxx性bbbb| 欧美亚洲综合一区| 天天干影视| 九九久久久久午夜精选| 免费人成激情视频在线观看冫| 岛国中文字幕| 午夜视频免费观看黄| 五月婷婷婷| 97菊爱网| 一区免费视频| 免费看一毛一级毛片视频| 特黄特黄| 永久免费看mv网站入口| 国产资源站| 欧美激情综合色综合啪啪五月| 色多多网址| 四色成人网| 伊人久久大香线蕉综合bd高清| 国产美女流出白浆在线观看| 欧美夜夜| 性生i活一级一片| 综合精品视频| 欧美区亚洲区| 国产亚洲美女| 黄色网址播放| 男女www视频在线看网站| 久久午夜神器| 色综合久久久久久久久五月性色| 天天色天天搞| 亚洲成人伊人网| 中日韩一级片|