繁体   English   中英

从字典构建搜索查询?

[英]build search query from a dict?

假设我有 dict { k1 : v1, k2 : v2 },我如何从中构建查询。 我不能直接做:

.search( (Query().k1 == v1) & (Query().k2 == v2))

因为字典也可能是:

{k2:v2} OR {k1:v1, k3:v3} OR ........

TinyDB 实例上的 search() 函数实际上将谓词作为参数,而 Query 实例在幕后创建这些谓词。 要运行更高级的搜索,您可以为 TinyDB 提供您自己的谓词。

from tinydb import Query,TinyDB

def predicate(obj,requirements):
    for k,v in requirements.items():
        if k not in obj or obj[k]!=v:
            return False
    return True

tiny = TinyDB('db.json')

requirements={
    'a':1,
    'b':3
}

print(tiny.search(lambda obj: predicate(obj,requirements)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM