
روز ۲۸ آموزش پایتون: پروژه مدیریت کاربران با ذخیره اطلاعات در JSON
بعد از تمرینهای پایه و تمرینهای فایل متنی، حالا زمان آن رسیده که یک پروژه کوچک اما کاربردی انجام دهیم که هم با فایلها کار میکند و هم مفاهیم ذخیرهسازی داده به شکل ساختاریافته را تمرین میکند. هدف این پروژه ساخت برنامهای است که بتواند اطلاعات کاربران را مدیریت کند و این اطلاعات را در قالب JSON ذخیره کند. استفاده از JSON در پایتون مزایای زیادی دارد؛ از جمله خوانایی بالا، امکان انتقال راحت دادهها بین برنامهها و پشتیبانی گسترده توسط پکیجهای پایتون.
در این پروژه، ما یک سیستم ساده مدیریت کاربران میسازیم که بتواند کاربر جدید اضافه کند، اطلاعات کاربران را نمایش دهد و در صورت نیاز، کاربران را حذف کند. دادههای کاربران شامل نام، سن و ایمیل خواهد بود. تمام این اطلاعات در یک فایل JSON ذخیره میشوند و با هر اجرا برنامه قادر است دادههای موجود را خوانده و بهروزرسانی کند. این ساختار مشابه پروژههای واقعی است که در آنها دادههای کاربران یا محصولات در قالب JSON ذخیره میشوند.
چرا JSON؟
JSON یکی از پرکاربردترین فرمتهای ذخیرهسازی و تبادل داده در دنیای برنامهنویسی است. برخلاف فایلهای متنی ساده، JSON دادهها را به شکل کلید و مقدار نگه میدارد و این باعث میشود بتوانیم به راحتی اطلاعات را دستهبندی و پردازش کنیم. در پایتون با استفاده از ماژول json، خواندن و نوشتن JSON بسیار ساده و مستقیم است و میتوانیم بدون نگرانی از پیچیدگیهای فرمت، اطلاعات را ذخیره و بازیابی کنیم.
استفاده از JSON به ویژه زمانی مفید است که بخواهیم دادهها را بین برنامههای مختلف یا سرویسهای تحت وب به اشتراک بگذاریم. اکثر APIها و سرویسهای آنلاین، اطلاعات خود را با فرمت JSON منتقل میکنند، بنابراین تسلط بر خواندن و نوشتن JSON مهارت حیاتی برای برنامهنویس پایتون محسوب میشود.
ایجاد ساختار پایه برنامه
ابتدا باید فایل JSON را ایجاد کنیم یا اگر موجود است، آن را بارگذاری کنیم. این کار با ماژول json انجام میشود و مطمئن میشویم که دادهها در قالب یک لیست از دیکشنریها ذخیره شوند. هر دیکشنری نمایانگر یک کاربر است.
نمونه کد ایجاد یا بارگذاری فایل JSON:
import json
import os
if os.path.exists("users.json"):
with open("users.json", "r", encoding="utf-8") as file:
users = json.load(file)
else:
users = []در این مثال، اگر فایل users.json وجود داشته باشد، دادهها بارگذاری میشوند و در غیر این صورت یک لیست خالی ایجاد میکنیم تا بتوانیم کاربران جدید اضافه کنیم.
افزودن کاربر جدید
برای افزودن کاربر، کافی است اطلاعات را از کاربر دریافت کرده و یک دیکشنری بسازیم. سپس این دیکشنری را به لیست کاربران اضافه میکنیم و فایل JSON را بهروزرسانی میکنیم.
نمونه کد افزودن کاربر:
name = input("نام کاربر را وارد کنید: ")
age = input("سن کاربر را وارد کنید: ")
email = input("ایمیل کاربر را وارد کنید: ")
new_user = {"name": name, "age": age, "email": email}
users.append(new_user)
with open("users.json", "w", encoding="utf-8") as file:
json.dump(users, file, ensure_ascii=False, indent=4)
print("کاربر با موفقیت اضافه شد!")این کد علاوه بر افزودن کاربر، فایل JSON را بهروزرسانی میکند و دادهها همیشه سازگار و خوانا باقی میمانند.
نمایش کاربران موجود
برای نمایش کاربران موجود، کافی است لیست users را پیمایش کنیم و اطلاعات هر کاربر را چاپ کنیم. این مرحله کمک میکند مطمئن شویم دادهها بهدرستی ذخیره شدهاند و کار با JSON به خوبی انجام میشود.
نمونه کد نمایش کاربران:
print("لیست کاربران:")
for user in users:
print(f"نام: {user['name']}, سن: {user['age']}, ایمیل: {user['email']}")این روش ساده و واضح است و برای برنامههای کوچک و متوسط کاملاً مناسب است.
حذف کاربر
حذف کاربر کمی پیچیدهتر است، زیرا باید کاربر مورد نظر را پیدا کنیم و از لیست حذف کنیم. بعد از آن، دوباره فایل JSON را بهروزرسانی میکنیم تا تغییرات ذخیره شوند.
نمونه کد حذف کاربر:
email_to_delete = input("ایمیل کاربری که میخواهید حذف کنید را وارد کنید: ")
users = [user for user in users if user['email'] != email_to_delete]
with open("users.json", "w", encoding="utf-8") as file:
json.dump(users, file, ensure_ascii=False, indent=4)
print("کاربر حذف شد (در صورت موجود بودن).")با این روش، هر کاربری که ایمیلش مطابق با ورودی باشد، از لیست حذف میشود و دادهها همواره بروزرسانی میشوند.
جمعبندی پروژه مدیریت کاربران با JSON
در این پروژه کوچک، یاد گرفتیم چطور یک برنامه واقعی بسازیم که اطلاعات کاربران را ذخیره، خواندن و حذف کند. با استفاده از JSON، دادهها به شکل ساختاریافته و خوانا ذخیره میشوند و استفاده از ماژول json باعث میشود کار با دادهها بسیار ساده شود. این پروژه پایهای عالی برای ورود به پروژههای بزرگتر مثل مدیریت محصولات، سیستم لاگین کاربران یا برنامههای تحت وب است.
تمرین پیشنهادی: میتوانی قابلیت ویرایش کاربر، جستجو بر اساس نام یا ایمیل، و حتی مرتبسازی لیست کاربران را اضافه کنی تا پروژه حرفهایتر و نزدیکتر به پروژههای واقعی شود. همین تمرینها پایه و اساس مهارت برنامه نویسی تو را در پایتون تقویت میکنند.
