【学库】TinyDB(玩数据)

TinyDB -数据处理

 

1、新增字段

一次增加一条: insert({'for':'bar'}) 

一次增加多条: insert_mutiple([{...},{...},...]) 

2、更新字段

对已经存在的字段进行数据处理。有1+6+X 种方法:

1: update({key:value})

6: update(tinydb_func(key或者key,value),query)

*** tinydb_func是便于理解,不是真的存在的函数。6种如下:

   #  delete(key):删除key对应的键值对

   #  increment(key):key对应的value +1,仅数字

   #  decerement(key):key对应的value -1,仅数字

   #  add(key, val):key对应的value + val,可以操作字符串

   #  subtract(key, val):key对应的value - val, 仅数字

   #  set(key, val):设置key的value = value,任意类型

from tinydb import TinyDB
from tinydb import Query

db = TinyDB('data.json')
db.insert_multiple([
    {'name':'a'},
    {'name':'b'},
    {'name':'c'},
    {'name':'d'},
    {'name':'e'},
    {'name':'f'},
])
print(db.all())  # 打印出来的结果很容易想象
db.update({'age':10})
print(db.all())  # 每个字段里面都增加了同样的新键值对
# [{'name': 'a', 'age': 10}, {'name': 'b', 'age': 10},
  {'name': 'c', 'age': 10}, {'name': 'd', 'age': 10},
{'name': 'e', 'age': 10}, {'name': 'f', 'age': 10}]
from tinydb.operations import delete from tinydb.operations import increment,decrement from tinydb.operations import add, subtract, set User = Query() db.update(delete('age'),User.name == 'a') # {'name': 'a'} -->直接删除了'age':10 db.update(increment('age'), User.name == 'b') # {'name': 'b', 'age': 11} -->10+1 db.update(decrement('age'), User.name == 'c') # {'name': 'c', 'age': 9} -->10-1 db.update(add('age',5), User.name == 'd') # {'name': 'd', 'age': 15} -->10+5 db.update(subtract('age',5), User.name == 'e') # {'name': 'e', 'age': 5} -->10-5 db.update(set('age',100), User.name == 'f') # {'name': 'f', 'age': 100} -->100 for filed in db.all(): print(filed)

X:自定义方法,可以按照下面的格式要求写自己的逻辑:

def my_func(args):
    def transform(doc):  #这两行不要改
        # 业务逻辑
        # ...
    return transform     #这两行不要改
db.update(my_func(args),query)

 3、更新插入

4、获取数据

5、替换数据

上一节:TinyDB(查询)

下一节:TInyDB(其他)

猜你喜欢

转载自www.cnblogs.com/watalo/p/12392518.html
今日推荐