Помогите с записью словаря в JSON файл
Необходимо сделать код, который будет в случае, если список словарей уже существует, добавлять новый.
А если нет, то создавать.
Вот код:
def dataInsert():
global tree
global count
global file
global file_name
dict = {'date': dateEntry.get(),
'service': serviceEntry.get(),
'month': monthEntry.get(),
'borrow': borrowEntry.get(),
'spent': spentEntry.get()}
def saveToJSON(data, filename):
with open(filename, 'w') as f:
json.dump(data, f)
if dateEntry.get() and serviceEntry.get() and monthEntry.get(
) and borrowEntry.get() and spentEntry.get():
if data == []:
data = [dict]
saveToJSON(data, file_name)
else:
data.append(dict)
saveToJSON(data, file_name)
else:
messagebox.showwarning("Warning",
"You should write something in the text boxes")
Ответы (1 шт):
Автор решения: gord1402
→ Ссылка
Вы можете использовать os.path.exist и json.load:
import json
import os
def dataInsert():
global tree
global count
global file
global file_name
dict = {'date': dateEntry.get(),
'service': serviceEntry.get(),
'month': monthEntry.get(),
'borrow': borrowEntry.get(),
'spent': spentEntry.get()}
def saveToJSON(data, filename):
with open(filename, 'w') as f:
json.dump(data, f)
if not os.path.exists(file_name):
data = []
else:
try:
with open(file_name, 'r') as f:
data = json.load(f)
except json.JSONDecodeError:
data = []
if dateEntry.get() and serviceEntry.get() and monthEntry.get(
) and borrowEntry.get() and spentEntry.get():
if not data:
data = [dict]
saveToJSON(data, file_name)
else:
data.append(dict)
saveToJSON(data, file_name)
else:
messagebox.showwarning("Warning",
"You should write something in the text boxes")