python - 如何将新列表附加到 JSON 文件中的现有字典
问题描述
我是 Python 的新手,我正在尝试列出一个包含学生的教室列表。但我正在尝试使用变量将它附加到 JSON 文件中的字典中。我当前的 JSON 文件如下所示:
[{"History": ["sally", "billy", "tommy"]}]
但我想添加一个新列表,使其看起来像这样:
[{"Hisotry": ["sally", "billy", "tommy"], "Calculus": ["billy", "sammy"]}]
我有这段代码,我可以让变量classRoom
成为班级并studentName
成为学生。我尝试通过更改 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"
我还尝试在将其添加到字典之前创建一个列表,执行 classRoom = [studentName]
然后附加它,data.append(classRoom)
但只有列表被附加,而不是 classRoom 名称。所以 JSON 文件最终看起来像这样。
[{"History": ["sally", "billy", "tommy"], ["sally"]}]
我正在尝试在文件中同时包含教室名称和学生,但我不确定尝试将新列表添加到文件中我做错了什么。关于我如何做到这一点或我缺少什么的任何帮助?
解决方案
data.append([str(classRoom)] = [str(studentName)])
这是错误的,您不能分配给函数调用。我也不确定所有转换为str
.
只需在列表中的第一个字典中分配一个新键(假设classRoom
是字符串"Calculus"
并且studentName
是列表["billy", "sammy"]
):
data[0][classRoom] = studentName
推荐阅读
- postgresql - postgress 将数据从数据库导入另一个具有更多列的表
- python - 索引为月时如何对系列的索引进行排序
- excel - 将静态公式转换为选择代码 VBA 宏
- abcpdf - ABCpdf unicode 字符为?
- java - 我在系统中的(本地)位置有一个文件,而不是健身文件夹,需要显示超链接以从 FITNESSE wiki 下载该文件
- javascript - 我需要一个表单的答案以立即重定向到另一个表单
- asp.net-mvc-5 - 在 mvc 上的剑道网格中绑定数据源
- python - 使用 xslxwriter 导出并从 SQlite 表中添加标题
- html - 未指定高度的父项中的百分比高度
- react-native - strokeDashedArray 不起作用(react-native-svg)