如何将新值附加到字典中的列表并将其写入JSON文件

时间:2020-09-27 07:11:38

标签: python json dictionary

我对python还是很陌生,但我仍在尝试学习字典。我制作了一个列表字典,但是我试图附加一个添加到该字典中现有列表中的值。但是,当我尝试将该新值追加到该列表时,它不会写入JSON文件,而只是将文件保持原样。

我有这个代码

with open('students.json') as j:
    students = json.load(j)
for i in students:
    #print "entered here4"
    if(name == i):
            print "entered here5"
            for k in students[i]:
                print "entered here6"
                print k
                if(classes == k):
                    print "classes exists Success"
                     sys.exit()
                else:
                        students[i].append(classes)
                                #x = students[i].append(classes) 
                                #with open ('students.json', 'w') as f:
                                    #json.dump(x,f)
                                #this didn't work for me, it wrote "null" to my JSON file
                                print "user added"
                                sys.exit()

(忽略打印语句,它们只是我尝试调试时的打印语句)

目前我的JSON文件看起来只有一个学生和他的班级

 {"student1": ["math"]}

我最终希望我的字典看起来像这样

{'student1': ["math", "biology"], "student2": ["chemistry"], "student3": ["History", "biology", "physics"]}

如何将新值添加到现有列表中,以及如何添加新键及其对应的列表?

1 个答案:

答案 0 :(得分:1)

在您的代码中,您正在更新局部变量,而不是将更新写入文件中。 您需要的是转储最终字典。

with open("students.json", "w") as jsonFile:
    json.dump(students, jsonFile)