在 Python 上,我正在尝试合并从 TinyDB 获得的多个 JSON 文件。
我无法找到一种方法来直接合并两个 tinydb JSON 文件,这些文件的密钥按顺序自动生成,不会随着下一个文件的打开而重新启动。
用代码的话,我想合并大量数据,如下所示:
hello1={"1":"bye",2:"good"....,"20000":"goodbye"}
hello2={"1":"dog",2:"cat"....,"15000":"monkey"}
作为:
Hello3= {"1":"bye",2:"good"....,"20000":"goodbye","20001":"dog",20002:"cat"....,"35000":"monkey"}
由于使用 TinyDB 找到正确方法的问题,我在经典语法 json 文件中打开并转换它们,加载每个文件然后执行:
Data = Data['_default']
我遇到的问题是,目前代码可以工作,但存在严重的内存问题。几秒钟后,创建的合并 Db 包含大约 28Mb 的数据,但(可能)缓存饱和,它开始以非常慢的方式添加所有其他数据。
所以,我需要在一定数量的数据之后清空缓存,或者我可能需要改变这样做的方式!
这就是我使用的代码:
Try1.purge()
Try1 = TinyDB('FullDB.json')
with open('FirstDataBase.json') as Part1 :
Datapart1 = json.load(Part1)
Datapart1 = Datapart1['_default']
for dets in range(1, len(Datapart1)):
Try1.insert(Datapart1[str(dets)])
with open('SecondDatabase.json') as Part2:
Datapart2 = json.load(Part2)
Datapart2 = Datapart2['_default']
for dets in range(1, len(Datapart2)):
Try1.insert(Datapart2[str(dets)])