Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将新列表附加到JSON文件中的现有词典中_Python_Json_List_Dictionary - Fatal编程技术网

Python 如何将新列表附加到JSON文件中的现有词典中

Python 如何将新列表附加到JSON文件中的现有词典中,python,json,list,dictionary,Python,Json,List,Dictionary,我是Python新手,我正在尝试列出一个有学生的教室列表。但我尝试使用变量将其附加到JSON文件中的字典中。我当前的JSON文件如下所示: [{"History": ["sally", "billy", "tommy"]}] [{"Hisotry": ["sally", "billy", "tommy"], "Calculus

我是Python新手,我正在尝试列出一个有学生的教室列表。但我尝试使用变量将其附加到JSON文件中的字典中。我当前的JSON文件如下所示:

[{"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]