如何用Python的TinyDB查询嵌套JSON对象及搜索test="hi"?
用TinyDB查询嵌套JSON对象的方法
当然可以用TinyDB查询嵌套JSON对象!针对你想筛选test=="hi"的需求,只需要借助TinyDB的Query()对象,通过点语法或者字典索引就能直接定位嵌套字段,轻松完成搜索。
示例代码演示
假设你的JSON数据结构大概是这样的(匹配你描述的包含嵌套json-object字段的场景):
[ { "json-object": { "test": "hi" }, "id": 1 }, { "json-object": { "test": "hello" }, "id": 2 } ]
对应的Python查询代码如下:
from tinydb import TinyDB, Query # 初始化TinyDB(这里以文件数据库为例,也可以用内存数据库) db = TinyDB('your_db.json') # 创建查询对象 Item = Query() # 方式1:使用点语法访问嵌套字段 matching_items = db.search(Item['json-object'].test == "hi") # 方式2:使用字典索引访问嵌套字段(和方式1效果完全一致) # matching_items = db.search(Item['json-object']['test'] == "hi") # 打印符合条件的完整条目 print(matching_items)
运行后你会直接得到包含test=="hi"的完整数据条目,而不是只拿到json-object字段。
扩展说明
如果你的JSON嵌套层级更深(比如level1.level2.level3.test这种多层结构),同样可以延续这种写法:
# 多层嵌套的查询示例 db.search(Item.level1.level2.level3.test == "target_value") # 或者用字典索引写法:Item['level1']['level2']['level3']['test'] == "target_value"
这样就能精准定位到任意层级的嵌套字段,筛选出符合条件的数据啦。
内容的提问来源于stack exchange,提问作者Nawap
相关产品推荐
相关产品推荐

