mon-site-perso/backend/utils/json_crud.py
2025-10-04 11:03:08 +02:00

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}