<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

TinyDB輕量級數據庫有哪些特點呢

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

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

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

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

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

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

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

適用于 Python 3.6+ 和 PyPy3:TinyDB 適用于所有現代版本的 Python 和 PyPy。

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

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

1.準備

開始之前,需要先安裝它

pip installtinydb

2.簡單的增刪改查示例

初始化一個DB文件:

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

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

往里面插入數據

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

查詢所有數據

fromtinydb importTinyDB
db = TinyDB('db.json')
db.all()
# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]
除了 .all() 我們還可以使用for循環遍歷db:
fromtinydb importTinyDB
db = TinyDB('db.json')
foritem indb:
print(item)
# {'count': 7, 'type': 'apple'}
# {'count': 3, 'type': 'peach'}
如果你需要搜索特定數據,可以使用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'}]

更新數據:

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

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

刪除數據也可以使用類似的條件語句:

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

3.高級查詢

除了點操作符訪問數據,你還可以用原生的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'))







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3603

    瀏覽量

    63477
  • python
    +關注

    關注

    52

    文章

    4691

    瀏覽量

    83526
收藏 人收藏

    評論

    相關推薦

    嵌入式應用輕量級數據庫 - 第12節 #硬聲創作季

    數據庫嵌入式應用
    充八萬
    發布于 :2023年09月01日 18:40:54

    嵌入式數據庫msql在Linux下有哪些應用?

    嵌入式數據庫的名稱來自其獨特的運行模式。這種數據庫嵌入到了應用程序進程中,消除了與客戶機服務器配置相關的開銷。嵌入式數據庫實際上是輕量級的,在運行時,它們需要較少的內存。
    發表于 10-22 08:13

    嵌入式數據庫哪些應用實例?

    嵌入式數據庫和企業級數據庫的區別在哪兒?嵌入式數據庫哪些應用實例?
    發表于 05-12 06:12

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

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

    【木棉花】分布式數據庫

    學習筆記–沈泳鑫,因為分布式數據庫輕量級數據庫之間是很多相識之處的。為了更好地熟練掌握鴻蒙手機應用開發,為了供大家更方便的學習鴻蒙手機的應用開發,我會將所有的筆記都整理
    發表于 09-05 10:43

    基于輕量級偏好數據庫,實現存儲在本地應用數據的訪問及操作

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

    嵌入式數據庫相關資料下載

    嵌入式數據庫的名稱來自其獨特的運行模式。這種數據庫嵌入到了應用程序進程中,消除了與客戶機服務器配置相關的開銷。嵌入式數據庫實際上是輕量級的,在運行時,它們需要較少的內存。它們是使用精簡
    發表于 10-27 07:53

    HarmonyOS數據庫的相關資料下載

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

    深度剖析OpenHarmony輕量級數據存儲

    一、輕量級數據存儲的版本openharmony的輕量級數據存儲現有兩個版本,但是harmonyOS的官網上只有一個輕量級數據存儲。二、應用目錄的獲取數據存儲需要獲取到應用的存放目錄,便
    發表于 03-31 14:45

    一個純Python編寫的輕量級數據庫

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

    一個純Python編寫的輕量級數據庫

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

    SQLite數據庫特點 SQLite數據庫簡單介紹

    語言,使得SQLite成為非常流行的數據庫管理系統。 SQLite數據庫特點: 1. 輕量級:SQLite數據庫是一種非常
    的頭像 發表于 08-28 16:40 ?4078次閱讀

    輕量級數據庫有哪些

    輕量級數據庫有哪些 隨著互聯網和物聯網等新一代信息技術的廣泛應用,數據庫系統也變得越來越重要。人們對于數據庫數據庫的可靠性、安全性和性能等要求也越來越高。與傳統的關系型
    的頭像 發表于 08-28 16:41 ?4449次閱讀

    TinyDB :一個純Python編寫的輕量級數據庫

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

    輕量級數據庫有哪些類型

    輕量級數據庫是指具有小巧、靈活、高效的特點,適用于小規模項目和嵌入式設備的數據庫管理系統。下面是對輕量級數據庫類型的詳細介紹,包括關系型數據庫
    的頭像 發表于 12-20 11:29 ?662次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>