python tinyDB 簡單使用

2021-08-28 08:00:25 字數 2672 閱讀 9868

今天使用了tinydb這個庫不錯呀。

1. create db

db = tinydb('/tmp/db.json')

2. create table

table = db.table('user')

table2 = db.table('data')

3. 查詢一共有幾張表

db.tables()

set([u'_default', u'user', u'image'])

4. 增加資料

一次增加一條的方法:

table.insert()

table.insert()

一次增加多條的方法:

table.insert_multiple([,,])

5. 檢視現在有多少資料表

table.all()

結果:

[, ]

6. 看乙個表當中的key 是否存在

from tinydb.queries import query, where

table.contains(where('name'))

true

table.contains(where('year'))

false

7. 查詢

q = query()

table.search( q.name == 'nick' )

查詢一下 name 共有多少資料

table.search( q.name )

[, , ]

查詢 name  個數

table.count( where('name') )

查詢 name == 'nick' 的個數

table.count(where('name')=='nick')

表裡共有多少條資料

len(table)

也可以用get 方法 這個方法只返回乙個結果,結果可能是多個,如果用search就可返回多個結果

table.get(where('name')=='nick')

查詢子項

table.insert(})

[, , , }]

table.search(q.value.val)  # 用這樣的方式可以直接找到

[}]

查詢裡邊的項大於多少可以直接寫

table.search(q.age>8)

[, ]

年齡!=23

table.search(~(q.age==23))

[, , }]

查詢年齡是8 或 23的人

table.search( (q.age == 8) | (q.age==23))

[, ]

查詢年齡是8 and 23的人

table.search( (q.age==8)&(q.age==23))

查詢一下是否這個key存在

table.search( q.age.exists() )

[, , ]

table.search( q.year.exists() )

這兩個功能太酷了!!!!

正則搜尋key

table.search(q.name.search(r'[a-z]+'))

[, ]

正則匹配

table.search(q.name.matches(r'\d+'))

[, ]

8. update 操作

當前的資料是

[, ]

執行更新一條記錄

table.update(,where('age')==8)

[, ]

更新所有的 name 為111

table.update()

[, ]

再增加兩條資料用來測刪除

>>> table.insert()

3>>> table.insert()

9.  刪除資料 name 等於 new2 的

table.remove(where('name')=='new2')

[, , ]

看去對單張表操作基本無可挑剔了,多個錶能不能聯合查詢呢,我沒有看到,有時間再弄這個吧。

SpringBoot Swagger簡單使用

io.springfox springfox swagger2 2.9.2 io.springfox springfox swagger ui 2.9.2 import org.springframework.context.annotation.bean import org.springfram...

UICollectionView的簡單使用

所屬controller要遵循三個協議 uicollectionviewdatasource,uicollectionviewdelegate,uicollectionviewdelegateflowlayout uicollectionviewflowlayout flowlayout uicol...

BGAQRCode Android的簡單使用

compile com.google.zxing core 3.2.1 xmlns android 這句是使用選擇器框架時用到的 xmlns tools package com.huaqiang.zxingdemo 選擇框架用到 android name android.permission.cam...