为什么列表中的项目没有保存到JSON?

时间:2017-02-16 19:01:58

标签: python json python-3.x file tkinter

class MainWindow(tk.Frame):
    def __init__(self, master=None, **kwargs):
        tk.Frame.__init__(self, master, **kwargs)

        self.filepath = os.path.expanduser(r'~\Documents\joseDzirehChongToDoList\toDoListSaveFile.json')

        self.checkboxList = []

    def loadToJSON(self):
        with open (self.filepath, 'w') as outfile:
            json.dump(self.checkboxList, outfile)

    def add(self, name):
        self.checkboxArea.add(name)
        self.checkboxList.append(name)
        self.loadToJSON()

def main():
    master = tk.Tk()
    master.title("To-Do List (with saving!)")
    master.geometry("300x300")
    win = MainWindow(master)
    win.pack(fill=tk.X)
    master.mainloop()

if __name__ == '__main__':
    main()

相关功能为loadToJSON()。它应该将checkboxList加载到名为C:\Users\Josalina\Documents\joseDzirehChongToDoList的{​​{1}}中的文件中。我打电话或定义toDoListSaveFile.json错了吗? loadToJSON()似乎确实有一个名为MainWindow的属性,所以我认为这是让我搞砸的号召。

1 个答案:

答案 0 :(得分:0)

问题已修复。它实际上是将列表项写入文件中,但是我忘了将文件中的项加载到checkboxList。然后在下次调用loadToJSON()时,重置checkboxList。