如何仅更新TinyDB文档中数组内指定id的条目?
TinyDB 更新数组内指定条目方法
TinyDB 本身没有提供直接更新数组内单个元素的内置API,需要通过「取出文档→修改数组元素→重新写入文档」的方式实现。针对你给出的示例文档,具体操作步骤如下:
- 导入依赖并初始化数据库
from tinydb import TinyDB, Query db = TinyDB('db.json') Doc = Query()
- 定位并获取目标文档
# 根据name字段匹配目标文档 target_doc = db.get(Doc.name == "first")
- 找到数组内指定条目并修改
if target_doc: # 遍历entries数组,定位id为2的条目 for item in target_doc['entries']: if item['id'] == 2: item['count'] = 66 # 替换为你需要更新的值 break # 将修改后的文档写回数据库 db.update(target_doc, Doc.name == "first")
补充说明
因为 TinyDB 是轻量级单文件数据库,主要面向单进程场景,这种「读-改-写」的方式足够满足常规需求。如果是多进程并发场景,需要额外处理数据一致性问题,但这不属于 TinyDB 的核心使用场景。
内容的提问来源于stack exchange,提问作者Miro Krsjak
相关产品推荐
相关产品推荐

