我很难发现是否可以使用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)
题:
是否有人知道一种方法Query()表的多个键值而不是一次只有一个?
你能列出这个信息的链接吗?如果它存在,我很难找到这些信息.
这是我与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) 如何从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) 将文档插入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?另外,可以进行更新插入吗?
谢谢!:)
我用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)
谢谢你的帮助 :)
我有以下 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)