标签: tinydb

将多个键值匹配到TinyDB中的数据库条目?

我很难发现是否可以使用TinyDB一次检查多个键值.目前我可以and在这样的if语句中使用以下方法检查多个字段:

def check_table(FNAME="NULL", LNAME="NULL", MNAME="NULL"):
    if (HHK_STAFF.search(Query().FNAME == FNAME)) != [] \
    and (HHK_STAFF.search(Query().MNAME == MNAME)) != [] \
    and (HHK_STAFF.search(Query().LNAME == LNAME)) != []:
        print(HHK_STAFF.search(Query().FNAME == FNAME)[0])
    else:
        print("user does not exist")

check_table(FNAME="Some", MNAME="Random", LNAME="Person")
Run Code Online (Sandbox Code Playgroud)

它做我想要的,但它接缝笨重.我希望TinyDB内置一些可以执行相同功能的东西,而不需要很多and语句.

我正在尝试做类似的事情:

HHK_STAFF.search(where(("FNAME", "MNAME", "LNAME")) == (FNAME, MNAME, LNAME)))
Run Code Online (Sandbox Code Playgroud)

题:

  1. 是否有人知道一种方法Query()表的多个键值而不是一次只有一个?

  2. 你能列出这个信息的链接吗?如果它存在,我很难找到这些信息.

这是我与TinyDB的简单版本:

from tinydb import TinyDB, Query


#~~~~~~~~~~~~~~~~~~~~~~< CURRENT DBPATH >~~~~~~~~~~~~~~~~~~~~~~
DB = TinyDB('./DB_PATH/HHK_DB.json')
#~~~~~~~~~~~~~~~~~~~~~~< CURRENT TABLES >~~~~~~~~~~~~~~~~~~~~~~
HHK_STAFF = DB.table("HHK_STAFF")

HHK_STAFF.insert({'EMPLOYEE_ID':'00000001', 'FNAME': 'Some', 'LNAME':'Person', 'MNAME':'Random'})


def …
Run Code Online (Sandbox Code Playgroud)

python tinydb

6
推荐指数
1
解决办法
871
查看次数

如何从TinyDB中删除记录或文档

如何从TinyDB中删除记录或文档

数据库示例:

{"1" : {"id_key" : "xxx", "params" : {} } },
{"2" : {"id_key" : "yyy", "params" : {} } },
Run Code Online (Sandbox Code Playgroud)

我想删除"1",如果id_key=='xxx'

在TinyDB上,建议使用以下代码。如何完成它以删除记录/文档?

db.update(delete('key1'), where('key') == 'value')
Run Code Online (Sandbox Code Playgroud)

python json tinydb

5
推荐指数
1
解决办法
3110
查看次数

可以在tinydb上输入文档id吗?可以更新插入吗?

将文档插入TinyDB数据库时可以定义文档ID吗?例如(来自教程)https://pypi.python.org/pypi/tinydb

from tinydb import TinyDB, where

from tinydb import TinyDB, where
db = TinyDB('./db.json')
db.insert({'int': 1, 'char': 'a'})
db.insert({'int': 1, 'char': 'b'}
Run Code Online (Sandbox Code Playgroud)

但如果我们看到生成的文档:

{"_default": {"1": {"int": 1, "char": "a"}, "2": {"int": 1, "char": "b"}}}
Run Code Online (Sandbox Code Playgroud)

诸如“1”和“2”之类的 id 由 TinyDB 自动决定。插入文档时是否可以选择该ID?另外,可以进行更新插入吗?

谢谢!:)

python tinydb

5
推荐指数
1
解决办法
2853
查看次数

无法导入名称“TinyDB”

我用pip安装了tinydb。 pip install tinydb 我也用pip3尝试过

我使用tinydb的示例代码来测试它。

from tinydb import TinyDB, Query
db = TinyDB('test.json')
db.insert({'int': 1, 'char': 'a'})
db.insert({'int': 1, 'char': 'b'})
Run Code Online (Sandbox Code Playgroud)

但我收到导入错误

Traceback (most recent call last):
  File "tinydb.py", line 1, in <module>
    from tinydb import TinyDB, Query
  File "/home/janw/Desktop/tinydb.py", line 1, in <module>
    from tinydb import TinyDB, Query
ImportError: cannot import name 'TinyDB'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

python tinydb

2
推荐指数
1
解决办法
1357
查看次数

Python:无法使用 tinydb 读取 json 文件

我有以下 json 文件:

标签.tg

[{"_type": "tag", "name": "A0", "path": "Drivers\\CMSIS\\Include\\arm_math.h", "pattern": "/^    float32_t A0;          \\/**< The derived gain, A0 = Kp + Ki + Kd . *\\/$/", "typeref": "float32_t", "kind": "member", "scope": "__anond9a59aba0f08", "scopeKind": "struct"},
{"_type": "tag", "name": "A0", "path": "Drivers\\CMSIS\\Include\\arm_math.h", "pattern": "/^    q15_t A0;           \\/**< The derived gain, A0 = Kp + Ki + Kd . *\\/$/", "typeref": "q15_t", "kind": "member", "scope": "__anond9a59aba0d08", "scopeKind": "struct"},
{"_type": "tag", "name": "A0", "path": "Drivers\\CMSIS\\Include\\arm_math.h", "pattern": "/^    q31_t A0;            \\/**< The derived gain, …
Run Code Online (Sandbox Code Playgroud)

python json tinydb

1
推荐指数
1
解决办法
2145
查看次数

标签 统计

python ×5

tinydb ×5

json ×2