[英]Merge Two TinyDB Databases
在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)])
問題 :合並兩個TinyDB數據庫...可能我需要更改執行此操作的方式!
來自TinyDB文檔
為什么不使用TinyDB?
...
您確實擔心性能,並且需要高速數據庫。
將單行插入數據庫總是很慢,請嘗試db.insert_multiple(...
第二個。 帶generator
。 使您可以選擇減少內存占用。
# From list
Try1.insert_multiple([{"1":"bye",2:"good"....,"20000":"goodbye"}])
要么
# From generator function
Try1.insert_multiple(generator())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.