QTreeWidget kullanarak oluşturulan dosyası editledikten sonra tekrar nasıl kaydedebilirim?

Merhaba
Aslında bir json editör yapmaya çalışıyorum. QTreeWidget ile sıralayıp ve editledikten sonra aynı dosyayı nasıl masaüstüne düzenlenmiş bir json dosyası şeklinde aktarabilirim ?

Kodum:

import json
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt

class ViewTree(QTreeWidget):
    def __init__(self, value):

        super().__init__()
        def fill_item(item, value):
            def new_item(parent, text, val=None):
                child = QTreeWidgetItem([text])
                child.setFlags(child.flags() | Qt.ItemIsEditable)

                fill_item(child, val)
                parent.addChild(child)
                child.setExpanded(True)
            if value is None: return
            elif isinstance(value, dict):
                for key, val in sorted(value.items()):
                    new_item(item, str(key), val)
            elif isinstance(value, (list, tuple)):
                for val in value:
                    text = (str(val) if not isinstance(val, (dict, list, tuple))
                            else '[%s]' % type(val).__name__)
                    new_item(item, text, val)
            else:
                new_item(item, str(value))

        fill_item(self.invisibleRootItem(), value)



if __name__ == '__main__':

    app = QApplication([])


    fname = QFileDialog.getOpenFileName()
    json_file=open(fname[0],"r")
    file=json.load(json_file)


    window = ViewTree(file)
    window.setGeometry(300, 100, 900, 600)
    window.show()
    app.exec_()

Ekran görüntüsü:

json.load'un dondurdugu objeyi QTreeWidget hiyerarsisine cevirdigin gibi, QTreeWidget hiyerarsisini de json.save'in gezebilecegi bir hiyerarsiye cevirmen lazim.

save'in calisma seklinde gore, __iter__, __serializer__ filan gibi json icin ozel fonksiyonlari olan bir widget sinifi yaratabilirsin, veya (daha kolayi ve Qt’yi bozma ihtimali olmayani) fill_item'da yaptiginin tersi olarak, widget’lari tek tek inceleyip Python objelerine donduren bir fonksiyon yazabilirsin.