![](/img/trans.png)
[英]How to append a new value to a list in a dictionary and write it to JSON file
[英]How do you append a new list to a an existing dictionary in JSON file
我是 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
你的數據結構是字典列表。 並且您想添加到您的字典而不是您的列表中。
在 python list
接受方法append
。 如果您將任何內容附加到列表中,它就會保留在列表中。
您要添加的鍵值是您的字典,即列表的一個元素,因此,如果您想更新您的字典,那么您需要先訪問字典,然后將新的鍵值添加到字典中。
向字典添加新元素如下所示
>>> d = {}
>>> d["item1"] = "value1"
>>> print(d)
{"item1":"value1"}
您的代碼可以如下所示
data[0][classRoom] = [list of students]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.