Python 如何将新列表附加到JSON文件中的现有词典中
我是Python新手,我正在尝试列出一个有学生的教室列表。但我尝试使用变量将其附加到JSON文件中的字典中。我当前的JSON文件如下所示:Python 如何将新列表附加到JSON文件中的现有词典中,python,json,list,dictionary,Python,Json,List,Dictionary,我是Python新手,我正在尝试列出一个有学生的教室列表。但我尝试使用变量将其附加到JSON文件中的字典中。我当前的JSON文件如下所示: [{"History": ["sally", "billy", "tommy"]}] [{"Hisotry": ["sally", "billy", "tommy"], "Calculus
[{"History": ["sally", "billy", "tommy"]}]
[{"Hisotry": ["sally", "billy", "tommy"], "Calculus": ["billy", "sammy"]}]
但我想添加一个新列表,使其看起来像这样:
[{"History": ["sally", "billy", "tommy"]}]
[{"Hisotry": ["sally", "billy", "tommy"], "Calculus": ["billy", "sammy"]}]
我有这个代码,其中变量教室
是类,学生名
是学生。我试图通过更改dict的数据类型将新列表添加到整个文件中,但在尝试运行时,我不断收到一个错误,即“关键字不能是表达式”
with open('students.json') as p:
data = json.load(p)
if type (data) is dict:
data = [data]
#classRoom = [studentName]
data.append([str(classRoom)] = [str(studentName)])
with open ('students.json', 'w') as outfile:
json.dump(data,outfile)
print "Success added new student to classroom"
在将其添加到字典之前,我还尝试创建一个列表,执行课堂=[studentName]
,然后执行数据追加(课堂)
,但只追加列表,而不追加课堂名称。因此JSON文件最终看起来是这样的
[{"History": ["sally", "billy", "tommy"], ["sally"]}]
我试图在文件中同时包含教室名称和学生,但我不确定我在尝试将新列表添加到文件中时做错了什么。关于我如何做到这一点或我缺少什么,有什么帮助吗
data.append([str(classRoom)] = [str(studentName)])
这是错误的,您不能分配给函数调用。我也不确定所有到str
的转换
只需在列表中的第一个dict中指定一个新键(假设教室
是字符串“演算”
,学生名
是列表[“比利”,“萨米”]
):
您的数据结构是字典列表。你想添加到你的字典中,而不是列表中 在python
list
中,接受方法append
。如果您在列表中添加了任何内容,它将保留在列表中
要添加的键、值是字典的一个元素,即列表的一个元素。因此,如果要更新字典,则需要先访问字典,然后向字典添加新的键、值
向字典添加新元素如下所示
>>> d = {}
>>> d["item1"] = "value1"
>>> print(d)
{"item1":"value1"}
data[0][classRoom] = [list of students]
您的代码可以如下所示
>>> d = {}
>>> d["item1"] = "value1"
>>> print(d)
{"item1":"value1"}
data[0][classRoom] = [list of students]