В Python я пытаюсь объединить несколько файлов JSON, полученных из TinyDB.
Мне не удалось найти способ прямого объединения двух файлов JSON tinydb, ключи которых были автоматически сгенерированы в той последовательности, которая не перезапускается при открытии следующего файла.
В кодовых словах я хочу объединить большое количество данных, таких как:
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']
Проблема, с которой я столкнулся, заключается в том, что на данный момент код работает, но у него серьезные проблемы с памятью. Через несколько секунд созданная объединенная база данных содержит примерно 28 МБ данных, но (вероятно) кэш насыщается, и он начинает добавлять все остальные данные очень медленно.
Итак, мне нужно очистить кеш после определенного количества данных, или, возможно, мне нужно изменить способ сделать это!
Это код, который я использую:
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)])