41 lines
No EOL
1.2 KiB
Python
41 lines
No EOL
1.2 KiB
Python
import json
|
|
import os
|
|
|
|
def load_json(filename):
|
|
if not os.path.exists(filename):
|
|
return []
|
|
with open(filename, 'r', encoding='utf-8') as f:
|
|
return json.load(f)
|
|
|
|
def save_json(filename, data):
|
|
with open(filename, 'w', encoding='utf-8') as f:
|
|
json.dump(data, f, indent=4, ensure_ascii=False)
|
|
|
|
def add_entry(filename, entry):
|
|
data = load_json(filename)
|
|
data.append(entry)
|
|
save_json(filename, data)
|
|
return entry
|
|
|
|
def update_entry(filename, entry_id, new_entry):
|
|
data = load_json(filename)
|
|
for i, item in enumerate(data):
|
|
if item.get('id') == entry_id:
|
|
data[i] = new_entry
|
|
save_json(filename, data)
|
|
return new_entry
|
|
return None
|
|
|
|
def delete_entry(filename, project_id):
|
|
# 1. Charger les données
|
|
with open(filename, "r", encoding="utf-8") as f:
|
|
projects = json.load(f)
|
|
|
|
# 2. Filtrer pour supprimer le projet avec l'ID donné
|
|
updated_projects = [p for p in projects if p.get('id') != int(project_id)]
|
|
|
|
# 3. Sauvegarder les données mises à jour
|
|
with open(filename, "w", encoding="utf-8") as f:
|
|
json.dump(updated_projects, f, indent=2, ensure_ascii=False)
|
|
|
|
return {"status": "success", "deleted_id": project_id} |