簡體   English   中英

如何將新列表附加到 JSON 文件中的現有字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM