我想根據(jù)用戶(hù)的輸入使用 JSON 創(chuàng)建數(shù)據(jù)庫(kù)。我已經(jīng)編寫(xiě)了這段代碼,但它用新數(shù)據(jù)替換了整個(gè)文件,并且不更新現(xiàn)有的 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)使用新輸入時(shí),json 文件應(yīng)將數(shù)據(jù)添加到現(xiàn)有文件中。所以輸出應(yīng)該是{"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"}, 我創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)是為了找到具有特定過(guò)濾器的所有員工。假設(shè)所有具有工程領(lǐng)域的員工。使用 JSON 作為數(shù)據(jù)庫(kù)是一個(gè)好習(xí)慣嗎?
2 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
每次保存數(shù)據(jù)時(shí)都會(huì)截?cái)辔募?br />使用“?a?”而不是“?w?”作為打開(kāi)模式。
代替
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)

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
關(guān)于你的問(wèn)題,使用 sqlite3 (加上 python)來(lái)更新數(shù)據(jù)庫(kù)更容易。一探究竟!
添加回答
舉報(bào)
0/150
提交
取消