我很难确定是否可以使用 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")
它做我想要的,但是它接缝很笨重。我希望 TinyDB 中有内置的东西可以执行相同的功能而无需许多and
语句。
我正在尝试做类似的事情:
HHK_STAFF.search(where(("FNAME", "MNAME", "LNAME")) == (FNAME, MNAME, LNAME)))
问题:
有没有人知道一种方法来查询()表的多个键值,而不是一次只有一个?
你能列出这个信息的链接吗?如果它存在的话,我很难找到这些信息。
这是我使用 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 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")
结果:
{'EMPLOYEE_ID': '00000001', 'FNAME': 'Some', 'LNAME': 'Person', 'MNAME': 'Random'}