我想根據用戶的輸入使用 JSON 創建數據庫。我已經編寫了這段代碼,但它用新數據替換了整個文件,并且不更新現有的 JSON 文件。文件database.json給出的輸出為{"Employee ID": "ID2", "Employee Name": "Friendrich", "Domain": "Engineering", "Employee Type": "Permanent", "Start Date": "01.02.2020", "End Date": "28.02.2021"}import jsons_id = input('employeeID')s_name = input('employeeName')s_domain = input('domain')s_type = input('employeeType')s_from = input('start-date')s_until = input('end-date')database = { 'Employee ID' : s_id, 'Employee Name' : s_name, 'Domain' : s_domain, 'Employee Type' : s_type, 'Start Date' : s_from, 'End Date' : s_until }with open('database.json') as json_file: data = json.load(json_file)data.update(database)with open('database.json', 'w') as json_file: json.dump(database, json_file)使用新輸入時,json 文件應將數據添加到現有文件中。所以輸出應該是{"Employee ID": "new ID", "Employee Name": "input name", "Domain": "input domain", "Employee Type": "input type", "Start Date": "input date", "End Date": "input date"}, {"Employee ID": "ID2", "Employee Name": "Friendrich", "Domain": "Engineering", "Employee Type": "Permanent", "Start Date": "01.02.2020", "End Date": "28.02.2021"}, 我創建這個數據庫是為了找到具有特定過濾器的所有員工。假設所有具有工程領域的員工。使用 JSON 作為數據庫是一個好習慣嗎?
2 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
每次保存數據時都會截斷文件。
使用“?a?”而不是“?w?”作為打開模式。
代替
with?open('database.json',?'w')?as?json_file: ????json.dump(database,?json_file)
和
with?open('database.json',?'a')?as?json_file: ????json.dump(database,?json_file)
添加回答
舉報
0/150
提交
取消